目前,我有一个如下所示的列表。
List4 = ['4','6','9','10']
finaldata = {
"animal":"cat",
"type":[
{
"weight":"true",
"origination":[
{
"number":"",
"result":'',
},
{
"number":"",
"result":,
},
{
"number":"",
"result":,
},
{
"number":"",
"result":,
}
]
}
]
}
finaldata.update({'result%s' % n:i for n,i in enumerate(list4)})
with open('data.json', 'w') as outfile:
json.dump(finaldata, outfile)
我需要将list4中的值替换为“结果”,如下所示。 并将值的位置替换为数字。 因此,第一个数字为4,所以它的数字为1,结果为4。 第二个数字是6,所以它是2,结果是6。
尽管在以后可以在字段中对其进行更新,但是我很难将其实际输入到“数字/结果”字段中。
它可能大于列表中的4个项目。
{
"animal":"cat",
"type":[
{
"weight":"true",
"origination":[
{
"number":"1",
"result":'4',
},
{
"number":"2",
"result":6,
},
{
"number":"3",
"result":9,
},
{
"number":"4",
"result":10,
}
]
}
]
}
答案 0 :(得分:1)
您需要更新finaldata['type']['origination']
,而不是finaldata
本身。而且它是一个列表,而不是字典,因此您不能为此使用.update()
(result0
中任何地方都没有像finaldata
这样的键)。只需使用从list4
获得的相同索引对其进行索引。
origination = finaldata['type']['origination']
for i, result in enumerate(list4):
origination[i]['number'] = str(i+1)
origination[i]['result'] = result