我有一个错误,我有点难以理解。我有一个使用biopython 来查询数据库的脚本。有时,biopython 无法找到我们要查找的内容,并且会抛出 HTTPError。但是,我无法捕获 HTTPError,因为我收到以下错误消息:
HTTPError:HTTP 错误 404:未找到
在处理上述异常的过程中,又发生了一个异常:
NameError Traceback(最近调用 最后)在() 51 UniProt = 文本[索引+9:索引+15] 52 uniprot_ID[bigg_ID] = UniProt ---> 53 除了 HTTPError: 54 如果 err.code == '404': 55 uniprot_ID[biGG_ID] = 无
NameError:名称“HTTPError”未定义
首先如何抛出未定义的错误?我缺少什么?
这是相关代码:
from Bio.KEGG import REST, Enzyme
from DataTreatment import openJson, write
...
try:
ec_number = some_string
text = REST.kegg_get('ec:'+ec_number).read()
...
except HTTPError:
if err.code == '404':
a_dict[a_key] = None
您需要导入 HTTPError 类。如果您已经导入,请确保您获得了正确的导入。您可以尝试捕获通用异常并使用 type(ex) 找出它是什么并导入正确的类型。
您需要导入 HTTPError 类,试试这个;
在代码顶部添加
from urllib.error import HTTPError
HttpError
也是 googleapiclient.errors
的一部分
识别错误源的一种做法是捕获异常的类型。可以使用以下代码
try:
# < main code here >
except Exception as e:
print(type(e))
其输出看起来像这样
<class 'googleapiclient.errors.HttpError'>
因此,您需要进行相应的调整。例如。
from googleapiclient.errors import HttpError
try:
# < main code here >
except HttpError as error:
pass