我创建了一个没有任何键的字典实例:值对,标准
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)
有专业提示吗?
其他答案已经解决了失败的原因,这里有一个方便的解决方案,如果密钥尚不存在,则设置默认值,这样您的附加就不会失败。按照我的理解,您需要一本包含其他字典列表作为值的字典。想象一下这样的情况
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)
我希望这回答了你的问题。