如何在Python上的单个文件中读写多个相关的JSON结构?

时间:2016-08-24 21:45:11

标签: python json

我编写了一个Python脚本来随机创建一个包含学生和成绩的JSON结构。创建每个学生及其最终成绩的脚本是:

import json
for i in range(1000):
    finalMedia = {"name":"name", "media":media}
    json.dump(finalMedia, open("xtext.txt",'w'))
    txt.write("\n")

产生如下文件:

...
{"media": 7, "nome": "Bernardo"}
{"media": 7, "nome": "Isadora"}
{"media": 7, "nome": "Pedro"}
{"media": 9, "nome": "Agatha"}
...

在阅读方面,我编写了另一个也使用JSON模块的脚本:

import json
data = json.load(open("xtext.txt"))
print data

我期待整个文件数据,但相反,我收到以下错误: Extra data: line 2 column 1 - line 1001 column 1 (char 32 - 31997)

起初,我认为错误是破坏线条的结果。我已经决定删除​​txt.write(“\ n”)但在那之后,我仍然得到同样的错误。然后,我试图将txt.write(“\ n”)更改为txt.write(“,”),但这也不起作用。所以错误必须在我的阅读上。我是否有与JSON模块有关的事情,或者它确实是我写文件的方式?

1 个答案:

答案 0 :(得分:3)

data = map(json.loads,open("xtext.txt"))

每一行都是一个json结构......但是在一起作为单个文件时,json

无效

虽然你应该只写一次json.dump

medias = [{"name":"name", "media":media} for name,media in all_media]
json.dump(medias,open("xtext.txt","wb"))