xmltodict:ExpatError:语法错误:第1行,第0列,从QuickGO获取xml

时间:2019-01-25 01:17:19

标签: python xmltodict bioservices

我对自己从以下内容中得到的错误感到困惑

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

1 个答案:

答案 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文件,以与山羊奶包一起使用。如果其他人遇到相同的问题,我将编辑原始问题以澄清此问题。