Bil*_*lga 6 python encoding json
考虑这个有效的json:
{"a": 1, "b": "{\"c\":2}"}
json当我尝试解析它时,Python 的模块抛出 - 看起来\"它正在抛出它:
json.loads('{"a": 1, "b": "{\"c\":2}"}')
回溯(最近一次调用最后一次):
文件“”,第 1 行,在
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py”,第 338 行,加载中
返回 _default_decoder.decode(s)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py”,第 365 行,解码
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py”,第 381 行,raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 15 (char 14)
有没有办法在 Python 中解析这个,要么使用json模块,要么使用其他模块,比如ujson?
实际上,转义双引号并不重要。看我的测试:
>>> json.loads('{"a": 1, "b": "{\"c\":2}"}')
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 359, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 1 column 18 (char 17)
>>> json.loads('{"a": 1, "b": "{"c":2}"}')
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 359, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 1 column 18 (char 17)
>>> json.loads('{"a": 1, "b": {"c":2}}')
{'a': 1, 'b': {'c': 2}}
>>> json.loads('{"a": 1, "b": {\"c\":2}}')
{'a': 1, 'b': {'c': 2}}
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |