我有一个.json文件,里面的内容类似于
{"a":"\/a"}
通过print打印,它显示为
'{"a":"\\/a"}'
使用json.load(f)后,产生的dict:
{'a':'/a'}
这并不是我想要的,我想要的是
{'a':'\/a'}
而且使用json.dump后,产生的文件变成了
{"a":"/a"}
既然json提供了json.load, json.dump, 传入的是一个文件句柄,同一个文件,经过一次load和一次dump,不作任何其它操作,它就把我的"\"吃掉了,
请问这算不算一个bug?
有一个方案是我先读取出文件中的字符串,然后用"\\"批量替换掉"\",再使用json.loads,请问除了这个方案,还有别的方法吗?
json里面的\表示转义,而/不需要被转义,所以会造成'\/'在解析的时候变成'/','/'在转化成json格式字符串的时候自然也不需要添加'\',原来的'\/'来自于别的地方,不属于json的格式,因此在生成'\/'的地方处理该字符串便可以,最后我选择忽略这个细节,因为它并没有造成错误,转回去失去了'\'的'/'依然能够正确使用