Python向现有字典添加字典

4
这里我做错了什么?字典内的附加似乎无法正常工作。
final = []

topid = { 
    "ida" : "ida",
    "idb" : "idb",
    "idc" : "idc",
    "subid" : {}
}

for subid in subids:
    insubid = {
        "name" : subid.name, 
        "sida" : "sida",
        "sidb" : "sidb",
        "sidc" : "sidc",
    }
    topid["subid"].append(insubid)

final.append(topid)

我收到了一个错误消息:
“AttributeError: 'dict' object has no attribute 'append'”
这意味着你正在尝试在字典对象上使用“append”方法,但是字典并没有该属性。

11
你是否在寻找 dict.update() 函数? - S.Lott
4
请提供您收到的错误信息。在这种情况下,错误信息实际上已经包含了您需要知道的全部信息。 - Sven Marnach
2
@Sven "'dict'对象没有'append'属性"很难成为"你需要知道的全部"。 - Michael Mrozek
展示您所得到的错误或结果以及您想要产生的结果。 - Facundo Casco
1
我不理解那些愿意写一大段批评的人的心态,当答案只需要几个词时。你本可以像亚当一样简单指出错误。谢谢。 - user391986
显示剩余3条评论
2个回答

11

我不确定这是否是您想要的,但通过使用append,您的代码期望subid是一个列表。如果这正是您想要的,那么您应该能够更改此代码:

topid = { 
    "ida" : "ida",
    "idb" : "idb",
    "idc" : "idc",
    "subid" : {}
}

变成这样:

topid = { 
    "ida" : "ida",
    "idb" : "idb",
    "idc" : "idc",
    "subid" : []
}

请注意,subid现在是一个空列表,而不是一个字典。


7

如果我理解正确,你需要做的就是更改:

topid["subid"].append(insubid)

to:

topid["subid"] = insubid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接