Python初学者在这里。我有一个带有键的字典,它的值是一个对象(dict),它也有一个键值对。我想向“子”对象添加一个键值对。
给定:
{"foo" :
{"bar" : "bars value"}
}
我想补充:
{"foo" :
{"bar" : "bar value",
"baz" : "baz value"
}
}
这似乎非常普遍,但我似乎找不到一个好的方法来做到这一点。
Python初学者在这里。我有一个带有键的字典,它的值是一个对象(dict),它也有一个键值对。我想向“子”对象添加一个键值对。
给定:
{"foo" :
{"bar" : "bars value"}
}
我想补充:
{"foo" :
{"bar" : "bar value",
"baz" : "baz value"
}
}
这似乎非常普遍,但我似乎找不到一个好的方法来做到这一点。
somedict = {"foo" :
{"bar" : "bars value"}
}
somedict['foo']['baz'] = 'baz value'
当 Python 遇到somedict['foo']['baz']
它时,它首先查找裸 name 的值somedict
。它发现它是一个dict
. 然后它评估somedict['foo']
并发现它是另一个字典。然后它为这个 dict 分配一个'baz'
带有 value的新键`baz value'
。
你可以做
mydict["foo"]["baz"] = "baz value"
如在
>>> mydict = {"foo" : {"bar" : "bars value"}}
>>> mydict["foo"]["baz"] = "baz value"
>>> mydict
{'foo': {'baz': 'baz value', 'bar': 'bars value'}}
这将在不知道里面的键值对的情况下工作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'}}
另一种使用update()
:
def updateChild(d, pk, pair): d["pk"].update((pair,))
d
是整个字典,pk
是父键,pair
是子键和更新数据的元组。如果您已经有这对,这很有用,因为您可能在问题标题中。