【问题标题】:How do I iterate over a dictionary for a specific key, then ading it to a new dictionary如何遍历字典以获取特定键,然后将其添加到新字典
【发布时间】:2021-07-01 23:41:13
【问题描述】:

我知道这是一个菜鸟问题,但我是 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 行。我如何写作才能达到预期的结果?我知道我想做什么,但不知道它的语法。

【问题讨论】:

  • 如果您在keyvalue 上进行打印,您期望打印的值是多少?您的附加方法也没有附加任何内容。您需要将一些内容传递给 append 方法。
  • 你想做什么?请提供具有多个 dicts 的预期输出
  • @MalcolmInTheCenter 我缩短了我的代码,使其更加明显,欢迎任何帮助
  • pmp_dict["operation"]["Details"]["ACCOUNTLIST"][key]=value 应该是 pmp_dict["operation"]["Details"]["ACCOUNTLIST"][key].append(value)
  • print(list_item.items()) 打印什么?

标签: python-3.x dictionary append


【解决方案1】:

您的代码有 2 个问题:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多