hj3618
[J]
采纳率0%
2019-01-31 14:23 阅读 593

python json 如何保留非转义意义的"\"

我有一个.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,请问除了这个方案,还有别的方法吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • hj3618 [J] 2019-03-04 16:46

    json里面的\表示转义,而/不需要被转义,所以会造成'\/'在解析的时候变成'/','/'在转化成json格式字符串的时候自然也不需要添加'\',原来的'\/'来自于别的地方,不属于json的格式,因此在生成'\/'的地方处理该字符串便可以,最后我选择忽略这个细节,因为它并没有造成错误,转回去失去了'\'的'/'依然能够正确使用

    点赞 评论 复制链接分享

相关推荐