Python新手拉取Jira数据遇NoneType错误:'NoneType' object has no attribute 'name'
解决Jira数据拉取中的NoneType错误
问题核心:当Jira工单没有分配人时,singleIssue.fields.assignee的值是None,直接访问.name就会触发NoneType对象没有name属性的错误。下面是两种简单的解决方式:
方法一:条件判断(直观易懂,适合新手)
通过三元表达式先检查assignee是否存在,再决定取值:
columnslist = ['Story', 'Assignee'] data = [] for singleIssue in jira.search_issues(jql_str): # 若assignee不为None则取name,否则设为"未分配" assignee_name = singleIssue.fields.assignee.name if singleIssue.fields.assignee else '未分配' fields = ( singleIssue.key, assignee_name ) data.append(fields) dfJira = pd.DataFrame(data, columns=columnslist)
方法二:getattr安全访问(适合多层嵌套属性)
用getattr逐层访问属性,每一层都可以设置默认值,避免多层判断:
columnslist = ['Story', 'Assignee'] data = [] for singleIssue in jira.search_issues(jql_str): # 第一层获取assignee,不存在返回None;第二层获取name,不存在返回"未分配" assignee_name = getattr(getattr(singleIssue.fields, 'assignee', None), 'name', '未分配') fields = ( singleIssue.key, assignee_name ) data.append(fields) dfJira = pd.DataFrame(data, columns=columnslist)
你可以根据自己的习惯选择其中一种,两种方式都能避免NoneType错误,同时给未分配的工单填充默认值。
内容的提问来源于stack exchange,提问作者cecilia13
相关产品推荐
相关产品推荐

