python中的多个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"}]} 这里已经回答了很多问题: 这向您展示

我有一个包含多个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"}]}

这里已经回答了很多问题:

这向您展示了如何使用
JSON.JSONDecoder
method
raw\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)我试过了,但没有用。非常感谢。我使用了上面的代码,现在一切都正常了:)