python json load_Python:处理json.load()与json.loads()中的换行

根据this answer,JSON字符串中的新行应该总是转义的。当我用json.load()加载JSON时,似乎不需要这样做。

我已将以下字符串保存到文件:{'text': 'Hello,\n How are you?'}

使用json.load()加载JSON不会引发异常,即使\n没有转义:>>> with open('test.json', 'r') as f:

... json.load(f)

...

{'text': 'Hello,\n How are you?'}

但是,如果我使用json.loads(),就会得到一个异常:>>> s

'{"text": "Hello,\n How are you?"}'

>>> json.loads(s)

Traceback (most recent call last):

File "", line 1, in

File "c:\Python34\lib\json\__init__.py", line 318, in loads

return _default_decoder.decode(s)

File "c:\Python34\lib\json\decoder.py", line 343, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "c:\Python34\lib\json\decoder.py", line 359, in raw_decode

obj, end = self.scan_once(s, idx)

ValueError: Invalid control character at: line 1 column 17 (char 16)

我的问题:json.load()是否自动转义文件对象中的\n?

不管JSON是由json.load()还是由json.loads()读取,都应该始终执行\\n?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值