Python在Try/Except循环中给出一个键错误



我正在运行代码:

def create_hec_kw(self, kw):
print(f'Creating Keyword {kw}')
data = {'name': kw, 'slug': kw.lower().replace(' ', '-')}
response = requests.post(self.create_url('tags'), headers=self.get_headers(), json=data)
# created_kw_id = response.json()['data']['term_id'] if response.json()['code'] else response.json()['id']
print(f'The keyword response is {response.json()}')
try:
if response.json()['code']:
created_kw_id = response.json()['data']['term_id']
else: 
created_kw_id = response.json()['id']
print(f'The id is {created_kw_id}')
return created_kw_id
except TypeError:
created_kw_id = ''
return created_kw_id

当响应不包含code时,我得到错误key not found "code"。我理解为什么发生错误(JSON响应)不包含该键。我想理解的是为什么它会崩溃我的应用程序(Flask托管在Heroku上),而不是优雅地去我的代码的except TypeError部分。

这难道不是我使用try循环的原因吗?我确信我做错了什么,但我想更好地理解这种行为。

KeyError代替TypeError来捕获它

相关内容

最新更新