替换字典

时间:2018-02-02 11:43:32

标签: python list dictionary

我有一个字典列表,我想循环遍历它们并替换其中一个值。我正在替换的值是一个字典,我想用同一个字典中的一个值替换它。

下面是列表中的一个词典。

{'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

4 个答案:

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