python 使用用户名从列表返回字典

oprakyz7  于 2022-12-25  发布在  Python
关注(0)|答案(1)|浏览(135)

我创建了一个函数来返回字典对象。我不能用用户名调用它,但得到以下错误:第一个月

def find_user(df_dict, filter_string):
    filtered_dict = dict(filter(lambda item: filter_string in item[0], df_dict.items()))

    return filtered_dict

find_user(df_dict=reviewers_dicts['Username'], filter_string='krpz1113')
efzxgjgh

efzxgjgh1#

这里有几件事是错的:

  1. reviewers_dicts['Username']给你一个字符串"bkpn1412",它没有.items()属性。
    1.您希望根据字典中的"Username"键检查filter_string,而不是检查字典中是否有filter_string
    1.正如您的函数名称所暗示的那样,您想要 * find * 一个用户,而不是获得用户的列表/字典(假定用户名是唯一的)。
    解决方案如下:
def find_user(list_of_dicts, filter_string):
    for d in list_of_dicts:
        if d["Username"] == filter_string:
            return d

reviewers_dicts = [
    {
        "Username": "bkpn1412",
        "DOB": "31.07.1983",
        "State": "Oregon",
        "Reviewed": ["cea76118f6a9110a893de2b7654319c0"],
    },
    {
        "Username": "krpz1113",
        "DOB": "21.17.1989",
        "State": "Oregon",
        "Reviewed": ["jh5b34jh5b3jh5b34jh5b3hj5b3b5jh34"],
    },
]
print(find_user(list_of_dicts=reviewers_dicts, filter_string="krpz1113"))

相关问题