python中的多个json字典
我有一个包含多个json字典的json文件: 格式如下python中的多个json字典,python,json,Python,Json,我有一个包含多个json字典的json文件: 格式如下 {"x":"1", "y":"2", "z": "3"}{"x": "2","y":"3", "z":"4"}{"x":"3", "y":"4", "z":"5"} 如何将其转换为json字典格式,如下所示: {"items":[{"x":"1", "y":"2", "z": "3"},{"x": "2","y":"3", "z":"4"},{"x":"3", "y":"4", "z":"5"}]} 这里已经回答了很多问题: 这向您展示
{"x":"1", "y":"2", "z": "3"}{"x": "2","y":"3", "z":"4"}{"x":"3", "y":"4", "z":"5"}
如何将其转换为json字典格式,如下所示:
{"items":[{"x":"1", "y":"2", "z": "3"},{"x": "2","y":"3", "z":"4"},{"x":"3", "y":"4", "z":"5"}]}
这里已经回答了很多问题: 这向您展示了如何使用
JSON.JSONDecoder
methodraw\u decode()
从它们的串联列表中提取每个JSON元素(这不是有效的JSON)。剩下的是一个简单的连接字符串'{“items”:['
,element1
,,“
,element2
,…”]”
,或者,将它们累加为一个列表,用一项dict包装,如果需要,用json.dumps将json作为字符串转储
好的,继续说吧
import json
d = json.JSONDecoder()
# get your concatenated json into x, for example maybe
x = open('myfile.json','r').read()
jlist=[]
while True:
try:
j,n = d.raw_decode(x)
jlist.append(j)
except ValueError:
break
x=x[n:]
# my original thought was
result = '{"items":[' +
','.join( [ str(s) for s in jlist] ) +
']'
# but this is neater
result = json.dumps( { "items":jlist })
# and of course if you want it for programmatic use, just
result_as_json = dict( items=jlist )
该文件已损坏。请将其返回给发件人,并提供有效的JSON,或至少是合理的格式。不幸的是,我自己从一个网站获取此数据的python脚本生成了此文件。在一个文件中串联多个JSON元素是非常常见的。人们不阅读JSON规范或pythonjson模块doc.quote:“与pickle和marshal不同,json不是一个框架协议,因此尝试通过重复调用dump()和相同的fp来序列化更多对象将导致无效的json文件。”我访问了链接,但似乎没有多大帮助。我是Python的新手。使用open('c:\\users\\fawads\\desktop\\short.json')作为f:data=f.read()d=json.JSONDecoder()d.raw(数据)用open('c:\\users\\fawads\\desktop\\data.json','w')作为outfile:json.dump(数据,outfile)我试过了,但没有用。非常感谢。我使用了上面的代码,现在一切都正常了:)