Python列表成json格式

时间:2019-06-28 22:25:59

标签: python json

目前,我有一个如下所示的列表。

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,
            }
         ]
      }
   ]
}

1 个答案:

答案 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