我对自己从以下内容中得到的错误感到困惑
from future.standard_library import install_aliases
install_aliases()
from urllib.request import urlopen
import xmltodict
oboxml = urlopen('http://www.ebi.ac.uk/QuickGO/GTerm?id=GO:0003723&format=oboxml')
obo_dict = oboxml.read()
obo_dict_parse = xmltodict.parse(obo_dict)
返回错误:
ExpatError追溯(最近一次通话) 在 6 oboxml = urlopen('http://www.ebi.ac.uk/QuickGO/GTerm?id=GO:0003723&format=oboxml') 7 obo_dict = oboxml.read() ----> 8 obo_dict_parse = xmltodict.parse(obo_dict)
〜/ anaconda3 / lib / python3.6 / site-packages / xmltodict.py解析(xml_input,编码,expat,process_namespaces,namespace_separator,disable_entities,** kwargs) 328 parser.ParseFile(xml_input) 329其他: -> 330 parser.Parse(xml_input,True) 331返回处理程序.item 332
ExpatError:语法错误:第1行,第0列
正在返回xml文件,因此其不为空。但是我不确定为什么XML解析器会感到不满意,特别是在我跟随教程笔记本*的时候。我正在使用通过anaconda安装和更新的xmltodict 0.11.0-py36_1。
非常感谢任何指针
*以下笔记本:goatools https://link.springer.com/protocol/10.1007/978-1-4939-3743-1_16
答案 0 :(得分:0)
据我所知:
Quickgo不提供xml格式。在其API中未将其列为响应类型 https://www.ebi.ac.uk/QuickGO/api/index.html#!/annotations/downloadLookupUsingGET
我尝试了使用Bioservices软件包及其QuickGo工具的另一种提取方法。似乎该软件包与它的文档有所不同,即曾经在哪里:
term = qgo.Term("GO:0000016", frmt="oboxml")
不再。条款已替换为条款,并且不再接受“ frmt =”或“ format =”。
我目前能得到的最接近的是:
from bioservices import QuickGO as qgo
qgo = qgo()
term = qgo.Terms("GO:0000016")
print(term, type(term))
这将返回一个列表。
需要一个xml文件,以与山羊奶包一起使用。如果其他人遇到相同的问题,我将编辑原始问题以澄清此问题。