Python初学者。我有一个带有键的字典,它的值是一个对象(字典),它也有一个键值对。我想为'child'对象添加一个键值对。
给出:
{"foo" :
{"bar" : "bars value"}
}
我想补充一下:
{"foo" :
{"bar" : "bar value",
"baz" : "baz value"
}
}
这似乎非常普遍,但我似乎无法找到一个好方法。
答案 0 :(得分:6)
somedict = {"foo" :
{"bar" : "bars value"}
}
somedict['foo']['baz'] = 'baz value'
当Python遇到somedict['foo']['baz']
时,它首先会查找裸名somedict
的值。它发现它是dict
。然后它评估somedict['foo']
并发现它是另一个字典。然后,它会为此dict分配一个值为'baz'
的新密钥`baz value'
。
答案 1 :(得分:3)
你可以做到
mydict["foo"]["baz"] = "baz value"
,如
>>> mydict = {"foo" : {"bar" : "bars value"}}
>>> mydict["foo"]["baz"] = "baz value"
>>> mydict
{'foo': {'baz': 'baz value', 'bar': 'bars value'}}
答案 2 :(得分:1)
这将在不知道dic
内的键值对的情况下工作:
>>> dic = {"foo" : {"bar" : "bars value"}}
...
>>> pairs = (("baz", "baz value"),)
for k,v in pairs:
for k1 in dic:
dic[k1][k]= v
>>> dic
{'foo': {'baz': 'baz value', 'bar': 'bars value'}}
另一个例子:
>>> dic = {"foo" : {"bar" : "bars value"},"bar" : {"bar" : "bars value"} }
>>> pairs = (("baz", "baz value"),)
for k,v in pairs:
for k1 in dic:
dic[k1][k]= v
...
>>> dic
{'foo': {'baz': 'baz value', 'bar': 'bars value'},
'bar': {'baz': 'baz value', 'bar': 'bars value'}}
答案 3 :(得分:0)
使用update()
的替代方案:
def updateChild(d,pk,pair): d [ “PK”]。更新((对,))
d
是整个字典,pk
是父键,pair
是子键和更新数据的元组。如果您已经拥有该对,这很有用,因为您可能会在问题标题中找到它。