如何使用Python从JSON向现有列表添加键
我已经在Python上玩了几个月了,但是我在一个问题上卡住了,特别是在现有列表中添加了一个新的键 以下是我现有的JSON数据:如何使用Python从JSON向现有列表添加键,python,json,Python,Json,我已经在Python上玩了几个月了,但是我在一个问题上卡住了,特别是在现有列表中添加了一个新的键 以下是我现有的JSON数据: {"ID": 384903848394829, "Items": [{"Apples" : 10, "Bananas" : 5, "Orange" : 15}]} 然后,我想将一个项目添加到“项目”列表中,因此它看起来像这样: {"ID": 3849
{"ID": 384903848394829, "Items": [{"Apples" : 10, "Bananas" : 5, "Orange" : 15}]}
然后,我想将一个项目添加到“项目”列表中,因此它看起来像这样:
{"ID": 384903848394829, "Items": [{"Apples" : 10, "Bananas" : 5, "Orange" : 15, "Peach" : 2}]}
以下是到目前为止我得到的信息:
import json
jsonFile = open(file)
jsonLoad = json.load(jsonFile)
fruitToAdd = {"Peach" : 2}
// Not quite sure what to put here
dump = json.dumps(jsonLoad, indent=4)
file.write(dump)
file.close()
嗯,我想你要找的是:
jsonLoad['Items'][0]['Peach'] = 2
或者,如果您想以编程方式添加答案,并且您已经硬编码了水果名称和编号,您也可以这样做:
fruitName = 'Peach'
fruitNumber = 2
jsonLoad['Items'][0][fruitName] = fruitNumber
但是,如果要坚持使用当前的FROUCTOADD变量,可以执行以下操作:
fruitToAdd = {"Peach" : 2}
fruitKey = list(fruitToAdd.keys())[0]
fruitValue = list(fruitToAdd.values())[0]
jsonLoad['Items'][0][fruitKey] = fruitValue
第三种方法非常有趣,因为您正在将字典键和值作为列表进行处理。尽管有点太复杂了。这将是我完成这项任务的方法。(无需硬编码)
JSON数据实际上只是一个Python dict,有两个键:ID和Items。项目的值是一个只包含一个元素的列表,而该元素恰好是另一个dict 向dict“dic”添加一个键/值对就像这样简单:
dic[key]=value
但是您必须访问dict才能在json数据中进行更改
jsonLoad['Items'][0].update(fruitToAdd)
我们应该做到这一点jsonLoad['Items']
访问Items值,该值是一个列表。[0]
访问列表中的第一个(也是唯一一个)元素,即要修改的dict。然后使用.update()
调用修改该dict。您可以使用一个dict更新另一个dict
在编码中通常有许多不同的方法。这只是其中之一
快乐编码 非常好,谢谢!太棒了,我今天学到了一些新东西。这是一种更干净的方式,我明白了,这也是一种更干净的方式
jsonLoad['Items'][0].update(fruitToAdd)