我在单个文件 file.txt
中存储了多个json对象{"article": "....", "title": "...."}{"article": "....", "title": "...."}
我将以下代码用于 dumping json对象
import json
data = {}
data['title'] = '....'
data['article'] = '....'
data_2 = {}
data_2['title'] = '.....'
data_2['article'] = '.....'
with open('file.txt', 'w') as file:
json.dump(data , file, ensure_ascii=False)
json.dump(data , file, ensure_ascii=False)
我使用for循环
我尝试读取这些对象,但是出现以下错误
ValueError: Extra data: line 1 column 10329 - line 1 column 295676 (char 10328 - 295675)
然后我将每个对象存储在不同的行
{"article": "....", "title": "...."}
{"article": "....", "title": "...."}
这导致了另一个错误
AttributeError: 'str' object has no attribute 'read'
我以这种方式存储了大约4k个对象,因此将它们存储在单独的字典中也不可行
(在类似问题上建议的一种方法)
对此表示感谢
答案 0 :(得分:2)
一个JSON文件应仅包含一个JSON才能起作用。在您的情况下,您可以将所有这些字典包装在单个列表中,并将其输出为单个JSON:
import json
lst = []
data = {}
data['title'] = '....'
data['article'] = '....'
lst.append(data)
data_2 = {}
data_2['title'] = '.....'
data_2['article'] = '.....'
lst.append(data_2)
with open('file.txt', 'w') as file:
json.dump(lst, file, ensure_ascii=False)
从该JSON文件读取时,您将获得包含已放入其中的所有字典的列表。