首页 > 解决方案 > 具有部分字符串匹配的列表理解

问题描述

尝试编写一个函数来搜索转换为字典列表的请求响应。每个返回的用户都会有很多属性,但我需要display_name根据通过主函数传递的查询来查找用户。

当前出现错误:

如果在用户 ['display_name'] 中查询:TypeError:'NoneType' 类型的参数不可迭代

功能定义

def search_users(self, query, group='any'):
    # Returns list of dictionaries representing users
    users = self.get_all_users()

    for user in users:
        if query in user['display_name']:
            result_set.append(user)

主函数调用

looker.search_users('steve')

标签: pythonpython-3.xlist-comprehension

解决方案


只需更改行:

if query in user['display_name']:

if query in user.get('display_name',''):

如果密钥存在并且它的值存在,则上述答案将不起作用,None因此我根据@tobias_k 评论更新了我的答案 -

if query in (user['display_name'] or ''):

推荐阅读