我有一个字典列表,我想循环遍历它们并替换其中一个值。我正在替换的值是一个字典,我想用同一个字典中的一个值替换它。
下面是列表中的一个词典。
{'id': '123abc',
'name': 'Metrics',
'rows': 0,
'columns': 0,
'owner': {'id': 123, 'name': 'John Doe'},
'dataCurrentAt': '2017-03-24T14:32:33Z',
'createdAt': '2017-03-24T14:32:33Z',
'pdpEnabled': False}
所以我试图用'owner'字典中的'name'替换整个'owner'值。我希望这是有道理的。下面是我尝试执行此操作的Python脚本部分。
for dictionary in dataset_list:
for key, value in dictionary.items():
if key == "owner":
owner = value.get("name")
value = owner
答案 0 :(得分:2)
如果我理解正确,你需要做的就是:


 dictionary [“owner”] = dictionary [“owner”] [“ name“]



 这会将键”owner“的值更改为键”name“的值。

答案 1 :(得分:1)
A = {'id': '123abc', 'name': 'Metrics', 'rows': 0, 'columns': 0, 'owner': {'id': 123, 'name': 'John Doe'}, 'dataCurrentAt': '2017-03-24T14:32:33Z', 'createdAt': '2017-03-24T14:32:33Z', 'pdpEnabled': False}
A["owner"] = A["owner"]["name"]
print A
<强>输出:强>
{'rows': 0, 'createdAt': '2017-03-24T14:32:33Z', 'name': 'Metrics', 'pdpEnabled': False, 'owner': 'John Doe', 'id': '123abc', 'columns': 0, 'dataCurrentAt': '2017-03-24T14:32:33Z'}
答案 2 :(得分:1)
您可以尝试:
>>> dataset_list = {'id': '123abc', 'name': 'Metrics', 'rows': 0, 'columns': 0, 'owner': {'id': 123, 'name': 'John Doe'}, 'dataCurrentAt': '2017-03-24T14:32:33Z', 'createdAt': '2017-03-24T14:32:33Z', 'pdpEnabled': False}
>>> for k,v in dataset_list.iteritems():
if k == "owner":
owner = v["name"]
dataset_list[k] = owner
>>> dataset_list
{'rows': 0, 'createdAt': '2017-03-24T14:32:33Z', 'name': 'Metrics', 'pdpEnabled': False, 'owner': 'John Doe', 'id': '123abc', 'columns': 0, 'dataCurrentAt': '2017-03-24T14:32:33Z'}
答案 3 :(得分:1)
for dictionary in dataset_list:
for key, value in dictionary.items():
if key == "owner":
dictionary["owner"] = dictionary["owner"]["name"]