我有一个错误,我有点难以理解。我有一个脚本,它使用biopython来查询数据库。有时候,biopython无法找到我们正在寻找的东西,并且会抛出HTTPError。但是我无法捕获HTTPError,因为我收到以下错误消息:
HTTPError:HTTP错误404:未找到
在处理上述异常期间,发生了另一个异常:
NameError Traceback(最近一次调用 最后)in() 51 UniProt =文本[索引+9:索引+15] 52 uniprot_IDs [bigg_ID] = UniProt ---> 53除HTTPError外: 54如果err.code =='404': 55 uniprot_IDs [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
答案 0 :(得分:2)
您需要导入HTTPError类。如果您已经导入,那么请确保您使用的是正确的。您可以尝试捕获一般的异常并使用类型(ex)来找出它是什么并导入正确的类型。
答案 1 :(得分:2)
您需要导入HTTPError类,试试这个;
在代码顶部添加
from urllib.error import HTTPError
来源:Entrez._HTTPError vs. Entrez.HTTPError (via Entrez.efetch)