【发布时间】:2016-02-25 22:34:17
【问题描述】:
我有一个包含至少 30 000 个字典的 json 文件。可以在这里找到:
http://openxcplatform.com.s3.amazonaws.com/traces/nyc/downtown-west.json
我在网上翻遍了,发现这让我最接近我需要的东西,因为我需要一个一个地阅读 json 文件,将 dicts 作为一个实际的 dict 输入到一个列表中:
with open("test.json") as data_file:
for x in data_file:
json.dumps(it.append(ast.literal_eval(x)))
我测试了这段代码,大部分情况下它都能正常工作。我测试了前 2000 个元素,但是,一旦我测试了整个文件,我就会收到这个错误:
File "converter.py", line 58, in <module>
if __name__ == "__main__": main()
File "converter.py", line 34, in main
json.dumps(it.append(ast.literal_eval(x)))
File "/usr/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/usr/lib/python2.7/ast.py", line 63, in _convert
in zip(node.keys, node.values))
File "/usr/lib/python2.7/ast.py", line 62, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "/usr/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
有人知道为什么会这样吗?
【问题讨论】:
标签: python json string dictionary malformed