我正在尝试使用另一个键中的值从字典中删除键。密钥存在,它表示当我输入value in dict.keys()
时它存在,但是当我尝试删除它时我得到了keyerror。
def remove_duplicate_length(choices):
print choices
print choices['scheme']
print type(choices['scheme'])
print choices['scheme'] in choices.keys()
print 'AABB' in choices.keys()
scheme = choices['scheme']
print type(scheme)
del choices[scheme]
打印出来:
{'ABAB': '2', 'AABB': '6', 'scheme': 'AABB', 'authors': ['Bukowski']}
AABB
<type 'str'>
True
True
<type 'str'>
None
在尝试引用return语句的结果时提供TypeError: 'NoneType' object has no attribute '__getitem__'
,或在尝试直接打印结果时提供keyerror: AABB
。
我打印的结果如下:
@route('/', method='POST')
def getUserChoice():
user_selection = parse_data(request.body.read())
print user_selection
答案 0 :(得分:0)
Python dict
有一个非常有效的方法get
。假设您的词典可能有或没有密钥。您可以使用get
来检索密钥或其他内容,然后您可以检查结果是否满足您的条件。
>>> mydict = {'name': 'Jhon', 'age': 2}
>>> mydict.get('name')
Jhon
>>> mydict.get('lastname', 'Not found')
Not found
在您的方法中,您可以检查密钥是否存在,然后将其删除。
...
scheme = choices.get('scheme', None)
print type(scheme)
if scheme:
del choices[scheme]