我有一本包含多个try-except语句的词典。 我试图用r.get()检索值,但它抛出了一个NoneObject类型错误。我知道.get()的默认参数是None,但它不起作用。我有多个列表,每次迭代时都会附加来自不同字典值的数据。你知道吗
如何将代码简化为一个try except语句?谢谢您!你知道吗
这是我的密码:
for num in issue_number:
print(num)
Response = requests.get(f'https://example.com/rest/api/2/issue/Proj-{num}?expand=changelog&maxResults =1000', auth=(example))
r = Response.json()
try:
task_list.append(r['key'])
except TypeError:
task_list.append('NA')
try:
summary_list.append(r['fields']['summary'])
except TypeError:
summary_list.append('NA')
try:
assignee_list.append(r['fields']['assignee']['displayName'])
except TypeError:
assignee_list.append('NA')
try:
created_list.append(r['fields']['created'])
except:
created_list.append('NA')
try:
status_list.append(r['fields']['status']['name'])
except:
status_list.append('NA')
try:
due_date_list.append(r['fields']['duedate'])
except:
due_date_list.append('NA')
try:
resolution_list.append(r['fields']['resolution']['name'])
except:
resolution_list.append('NA')
try:
resolution_date_list.append(r['fields']['resolutiondate'])
except:
resolution_date_list.append('NA')
我倾向于将这类代码重构为:
如果您真的想获取部分条目,那么使用@jdehesa中的
get_deep
可能会很有用您可以通过链接多个
get
调用来避免所有这些:但是,由于您多次执行相同的操作,因此使用函数可能会更方便,例如:
您可以将密钥作为元组存储在某个列表中,然后检查这些密钥对是否存在于
r
,如果存在,请将它们添加到status_list
。你知道吗输出:
相关问题 更多 >
编程相关推荐