函数搜索字典并显示整个条目



我正在尝试构建一个函数,该函数将在字典中搜索"用户名"键下的值,并打印整个条目。因此,如果我搜索用户名"KKYSD",它会返回该用户名(如果存在(,并打印条目的其余部分。这是我当前的代码:

def find_user():
value = input ('Input Username:')
for k, entry in reviewers_dicts.items():
if value == entry['Username']: 
return k, entry   
print(find_user());

当我运行这个时,我得到错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-9140ff50d541> in <module>
6             return k, entry
7 
----> 8 print(find_user());
<ipython-input-12-9140ff50d541> in find_user()
3     value = input ('Input Username:')
4     for k, entry in reviewers_dicts.items():
----> 5         if value == entry['Username']:
6             return k, entry
7 
TypeError: string indices must be integers

我的文件绝对是一本字典——运行print(type(reviewers_dicts))就证明了这一点。

我注意到的一个问题是,当我运行时:

print(type(reviewers_dicts['Username']))

我得到:

<class 'str'>

我猜这就是我问题的原因,那么我该如何解决这个问题呢?

编辑:

reviewers_dicts=

{'Username': 'yuoc2324', 'DOB': '02.08.1975', 'State': 'South Dakota', 'Reviewed': []}

您的问题是您的reviewer_dict;如果reviewer_dict是字典中的一个字典,那么find_user函数就可以开箱即用。示例:

reviewers_dicts = {1: {'Username': 'tston529', 'Food': 'ramen'}, 2: {'Username': 'shogga22', 'Food': 'pizza'}}

for k, entry in reviewers_dicts.items():中的entries目前是主dict(即['yuoc2324', '02.08.1975', 'South Dakota', []](中每个值的列表,它们都不是字典。

最新更新