打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
simplejson处理不严谨JSON python json Invalid control character

一个标准、严谨的JSON应该如下:

  1. {"title": "\u6587\u7ae0\u6807\u9898\n\u6362\u884c"}  


但是在某些情况下,特别是跨语言情况下,JSON可能是这个样子:

  1. {"title": "文章标题  
  2. 换行"}  

这种情况下直接使用 simplejson.loads(json) 有可能报如下错误:

  1. raceback (most recent call last):  
  2.   File "testjson.py", line 24, in <module>  
  3.     print simplejson.loads(json)  
  4.   File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/  
  5. site-packages/PIL/__init__.py", line 384, in loads  
  6.       
  7.   File "build/bdist.macosx-10.5-i386/egg/simplejson/decoder.py", line 402,   
  8. in decode  
  9.   File "build/bdist.macosx-10.5-i386/egg/simplejson/decoder.py", line 418,   
  10. in raw_decode  
  11. simplejson.decoder.JSONDecodeError: Invalid control character at: line 1   
  12. column 15 (char 15)  

simplejson.loads() 有一个手册上没有提及的参数“strict”,这其实是 JSONDecoder 的一个构造参数,即不严格检查JSON语法。

因此,兼容非标准格式的方法即:

  1. simplejson.loads(json, strict=False)  


文章来源:http://old.zhigang.net/post/18001#

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python数据持久化:JSON| 编程派 | Coding Python
Share 4 More | 使用MessagePack序列化数据
使用python解析json文件
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
Zabbix调用微信报警
json在python下的解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服