将字典列表转储到JSON会产生ValueError:Extra Data

时间:2016-03-09 19:12:45

标签: python json dictionary

我在python上做了一个赋值,我试图将包含另一个字典列表的字典转储到JSON中。但是,在运行数据时,它出错:

文件" D:\ Users \ XXXXX \ Anaconda2 \ lib \ json \ decoder.py",第367行,解码     提出ValueError(errmsg("额外数据",s,end,len(s))) ValueError:额外数据:第1行第76行 - 第1行第1434行(字符75 - 1433)

以下是JSON编写器上的代码片段:

This build is parameterized

由于字典"数据"输出的数据文件不是预期的。多次输出,而不是一次只输出一次。

def savelist(self):
    data={}
    f = open('partjson.txt','w')
    for i in range(self.datacount):
        data.setdefault("data",[]).append({'name':self.namelist[i], 'numid':str(self.numidlist[i]), 'height':str(self.heightlist[i]), 'length':str(self.lengthlist[i])})
        json.dump(data,f)
    f.close()

你能告诉我我的方法有什么问题吗?谢谢

1 个答案:

答案 0 :(得分:1)

你错放了json.dump(data, f)的缩进。每个循环都会调用data.setdefault,从而创建所谓的"数据"字典条目。这会产生错误。代码应该是:

def savelist(self):
data={}
f = open('partjson.txt','w')
for i in range(self.datacount):
    data.setdefault("data",[]).append({'name':self.namelist[i], 'numid':str(self.numidlist[i]), 'height':str(self.heightlist[i]), 'length':str(self.lengthlist[i])})
json.dump(data,f)
f.close()