如何遍历特定键的字典,然后将其添加到新字典

时间:2021-04-06 07:28:14

标签: python-3.x dictionary append

我知道这是一个noob问题,但我是一个新的学习者Python和我与字典中挣扎。

我认为我的代码是正确的,但我不确定。

我想要实现的是我想迭代一个字典,其中包含一个包含字典的列表项。如果值为 == None 则应跳过该键。但如果有一个价值。我想将 Key:Value 对附加到 pmp_dict = {}

这是我的代码:

 input_dict = {
    "operation": {
        "Details": {
            "ACCOUNTLIST": {
                "RESOURCENAME": "abbas",
                "ACCOUNTNAME": "account_name",
                "RESOURCETYPE":None,
                "PASSWORD": "password"
            }
        }
    }
}

pmp_dict= {
    "operation": {
        "Details": {
            "ACCOUNTLIST": [
                {
                
                }
            ]
        }
    }
}

print(pmp_dict)

for list_item in input_dict["operation"]["Details"]["ACCOUNTLIST"]:
    for key, value in list_item.items():
        if value == None:
            pass
        else:
            pmp_dict["operation"]["Details"]["ACCOUNTLIST"][key]=value

我挣扎的是最后 5 行。我该怎么写才能达到预期的结果?我知道我想做什么,但不知道它的语法。

1 个答案:

答案 0 :(得分:1)

您的代码有两个问题:

1.pmp_dict["operation"]["Details"]["ACCOUNTLIST"] 不是字典,它是一个列表。除非这是故意的,否则我会替换

pmp_dict= {
    "operation": {
        "Details": {
            "ACCOUNTLIST": [
                {
            
                }
            ]
        }
    }
}

pmp_dict = {
    "operation": {
        "Details": {
            "ACCOUNTLIST": {

            }
        }
    }
}
  1. 您不需要使用
  2. 遍历字典

for list_item in input_dict["operation"]["Details"]["ACCOUNTLIST"]:

因此,将代码的最后 6 行替换为

for key, value in input_dict["operation"]["Details"]["ACCOUNTLIST"].items():
    if value == None:
        pass
    else:
        pmp_dict["operation"]["Details"]["ACCOUNTLIST"][key] = value