simplejson处理不严谨JSON python json Invalid control character -zhaokuo719

转载 2013年12月06日 11:36:51

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

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


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

{"title": "文章标题
换行"}

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

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

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

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

simplejson.loads(json, strict=False)


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

python json json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

>>> import json >>> test="{'data':'123'}" >>> result=json.loads(test) Traceback (most recent call la...
  • o1101574955
  • o1101574955
  • 2016年05月09日 19:34
  • 7906

simplejson.scanner.JSONDecodeError: Extra data: line 1 column 22089 - line 1 column 22090

我的代码 page = requests.get("http://www.sogou.com/kmap?query=%E9%99%88%E5%A5%95%E8%BF%85&from=relation...
  • u011734144
  • u011734144
  • 2017年02月10日 18:57
  • 2801

eval与json.loads对json的处理小记

JSON有两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(stru...
  • djskl
  • djskl
  • 2015年03月31日 19:52
  • 6778

python 使用 simplejson 将字符串转换成字典dict

http://www.jb51.net/article/35021.htm JSON到字典转化: dictinfo = simplejson.loads(json_str) 输出dict类...
  • hshl1214
  • hshl1214
  • 2015年04月26日 19:24
  • 1548

[python]json.loads 几种错误 解决方案

json.loads python错误: 'utf8' codec can't decode byte ... 由于需求,要用python读取网页返回json,并取得其中的数据但是却遇到以上编码的问题...
  • game115
  • game115
  • 2015年01月12日 13:50
  • 11472

Invalid character in the given encoding. Line XX, position XX.解决方法

最近在通过load函数,获取config文件中信息的时候,提示上面的错误,动手找资料发现是,config文件开头信息的问题。解决方法: 打开对应的config XML文件,看它的第一行  将encod...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014年01月08日 09:47
  • 1585

simplejson处理不严谨JSON python json Invalid control character -zhaokuo719

一个标准、严谨的JSON应该如下: {"title": "\u6587\u7ae0\u6807\u9898\n\u6362\u884c"} 但是在某些情况下,特别是跨语言情况下,JSON可...
  • zhaokuo719
  • zhaokuo719
  • 2013年12月06日 11:36
  • 5299

bug记录:Json Parsing Error : JSON.parse: bad control character in string literal

json用js转换报错。
  • software_kid
  • software_kid
  • 2016年02月01日 17:39
  • 1583

Cookie中存放json字符串异常的解析

有关cookie中存放value值是json字符串引发的exception的问题解析 最近在往cookie的value中存放json字符串,会出现Control character in coo...
  • liunian02050328
  • liunian02050328
  • 2017年08月31日 18:55
  • 848

String contains an invalid character

document.createElement(""); 要用标准的W3C语法! var div = document.createElement('div'); div.id = abc; ...
  • ayearlater
  • ayearlater
  • 2011年08月05日 10:30
  • 439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:simplejson处理不严谨JSON python json Invalid control character -zhaokuo719
举报原因:
原因补充:

(最多只允许输入30个字)