[J] 2019-01-31 14:23 采纳率: 0%
浏览 881

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条回答

  • [J] 2019-03-04 16:46
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 手机连接电脑热点显示无ip分配
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大