使用Pythons(2.7)'json'模块我正在寻找处理各种JSON提要.不幸的是,其中一些提要不符合JSON标准 - 具体而言,某些键不包含在双重语音标记(")中.这导致Python出错.
在编写一个丑陋的代码片段来解析和修复传入的数据之前,我想我会问 - 有没有办法允许Python解析这个格式错误的JSON或"修复"数据,这样就可以了有效的JSON?
工作实例
import json
>>> json.loads('{"key1":1,"key2":2,"key3":3}')
{'key3': 3, 'key2': 2, 'key1': 1}
Run Code Online (Sandbox Code Playgroud)
破碎的例子
import json
>>> json.loads('{key1:1,key2:2,key3:3}')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\json\__init__.py", line 310, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 346, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 362, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 1 (char 1)
Run Code Online (Sandbox Code Playgroud)
我已经编写了一个小的REGEX来修复来自这个特定提供商的JSON,但我预测这将成为未来的一个问题.以下是我提出的建议.
>>> import re
>>> s …Run Code Online (Sandbox Code Playgroud)