Python-向空字典添加键值部分

GCi*_*ien 5 python dictionary

我创建了一个没有任何键的字典实例:值对,标准

dict = {}
Run Code Online (Sandbox Code Playgroud)

然后,我将从API返回一些信息,以根据某些变量名称将其添加到此字典中。

some_variables_name1 = str(some_variable1)

dict[some_variables_name1] += [{ 'key1': value1 }]

some_variables_name2 = str(some_variable2)

dict[some_variables_name2] += [{ 'key2': value2 }]
Run Code Online (Sandbox Code Playgroud)

但是,我似乎收到类似于此的错误*假设str(some_variable1)等于'foo'

KeyError: 'foo'
Run Code Online (Sandbox Code Playgroud)

有专业提示吗?

Ban*_*ana 4

其他答案已经解决了失败的原因,这里有一个方便的解决方案,如果密钥尚不存在,则设置默认值,这样您的附加就不会失败。按照我的理解,您需要一本包含其他字典列表作为值的字典。想象一下这样的情况

somedict = {}
somevar = 0
somevar_name = str(somevar)

key1 = "oh"
value1 = 1
Run Code Online (Sandbox Code Playgroud)

你可以做

somedict.setdefault(somevar_name,[]).append({key1,value1})
Run Code Online (Sandbox Code Playgroud)

这将评估为

{'0': [{'哦', 1}]}

换句话说,改变这种类型的行

somedict[some_variables_name] += [{ 'somekey': somevalue }]
Run Code Online (Sandbox Code Playgroud)

进入:

somedict.setdefault(some_variables_name,[]).append({'somekey':somevalue})
Run Code Online (Sandbox Code Playgroud)

我希望这回答了你的问题。