我知道这是一个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 行。我该怎么写才能达到预期的结果?我知道我想做什么,但不知道它的语法。
答案 0 :(得分:1)
您的代码有两个问题:
1.pmp_dict["operation"]["Details"]["ACCOUNTLIST"]
不是字典,它是一个列表。除非这是故意的,否则我会替换
pmp_dict= {
"operation": {
"Details": {
"ACCOUNTLIST": [
{
}
]
}
}
}
与
pmp_dict = {
"operation": {
"Details": {
"ACCOUNTLIST": {
}
}
}
}
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