Python 从xml文件中提取列表或字典

Python 从xml文件中提取列表或字典,python,xml,list,dictionary,Python,Xml,List,Dictionary,您好,我从未使用过xml。。有人能帮我用python创建一个列表或字典,它从xml文件中为ID指定一个特定的名称(字符串) 这是我的xml文件: api.brain map.org/api/v2/data/query.xml?num_rows=10000&start_row=10001&&criteria=model::Gene,rma::criteria,products[缩写$eq%27Mouse%27] 我可以给你看一个片段: <Response success="true" sta

您好,我从未使用过xml。。有人能帮我用python创建一个列表或字典,它从xml文件中为ID指定一个特定的名称(字符串)

这是我的xml文件:

api.brain map.org/api/v2/data/query.xml?num_rows=10000&start_row=10001&&criteria=model::Gene,rma::criteria,products[缩写$eq%27Mouse%27]

我可以给你看一个片段:

<Response success="true" start_row="10001" num_rows="9990" total_rows="19991">
<objects>
<object>
<acronym>Hdac4</acronym>
<alias-tags>4932408F19Rik AI047285</alias-tags>
<chromosome-id>34</chromosome-id>
<ensembl-id nil="true"/>
<entrez-id>208727</entrez-id>
<genomic-reference-update-id>491928275</genomic-reference-update-id>
<homologene-id>55946</homologene-id>
<id>84010</id>
<legacy-ensembl-gene-id nil="true"/>
<name>histone deacetylase 4</name>
<organism-id>2</organism-id>
<original-name>histone deacetylase 4</original-name>
<original-symbol>Hdac4</original-symbol>
<reference-genome-id nil="true"/>
<sphinx-id>188143</sphinx-id>
<version-status>no change</version-status>
</object>
<object>
<acronym>Prss54</acronym>
<alias-tags>4931432M23Rik Klkbl4</alias-tags>
<chromosome-id>53</chromosome-id>
<ensembl-id nil="true"/>
<entrez-id>70993</entrez-id>
<genomic-reference-update-id>491928275</genomic-reference-update-id>
<homologene-id>19278</homologene-id>
<id>46834</id>
<legacy-ensembl-gene-id nil="true"/>
<name>protease, serine 54</name>
<organism-id>2</organism-id>
<original-name>protease, serine, 54</original-name>
<original-symbol>Prss54</original-symbol>
<reference-genome-id nil="true"/>
<sphinx-id>65991</sphinx-id>
<version-status>updated</version-status>
</object>
<object>
...

$eq%27鼠标%27]

$eq%27鼠标%27]

有人能帮我吗?
我不确定应该用哪种格式存储它。。最后,我想搜索ID并获得原始名称。

如果您将XML存储在名为
results.XML的文件中

那么使用BeautifulSoup就很简单了

从bs4导入美化组
将open('results.xml')作为f:
soup=BeautifulSoup(f.read(),'xml')
最终字典={}
对于汤中的对象。查找所有('object'):
final_dictionary[object.find('acronym').string]=object.find('entrez-id').string
打印(最终词典)
如果您想从URL检索XML,那么这也很简单

导入请求
从bs4导入BeautifulSoup
url=“”
response=requests.get(url)
soup=BeautifulSoup(response.content,'xml')
#一旦分配了“soup”变量
#从这里开始,代码与上面的示例相同
输出

{'Hdac4':'208727','Prss54':'70993'}

如果XML存储在名为
results.XML的文件中

那么使用BeautifulSoup就很简单了

从bs4导入美化组
将open('results.xml')作为f:
soup=BeautifulSoup(f.read(),'xml')
最终字典={}
对于汤中的对象。查找所有('object'):
final_dictionary[object.find('acronym').string]=object.find('entrez-id').string
打印(最终词典)
如果您想从URL检索XML,那么这也很简单

导入请求
从bs4导入BeautifulSoup
url=“”
response=requests.get(url)
soup=BeautifulSoup(response.content,'xml')
#一旦分配了“soup”变量
#从这里开始,代码与上面的示例相同
输出

{'Hdac4':'208727','Prss54':'70993'}
我看到一个关于XML的例子,您可以尝试使用它们

使用pythonlxml的lib,在

您可以从以下内容开始:

导入请求
从lxml导入etree、html
#编辑:是的,BeautfulSoup也很有效,就像你朋友以前说的那样
从bs4导入BeautifulSoup
url=”http://api.brain-map.org/api/v2/data/query.xml?num_rows=10000&start_row=10001&&criteria=model::Gene,rma::标准,产品[缩写$eq%27鼠标%27]”
req=请求。获取(url)
doc=req.text
root=etree.XML(doc)#用于此或。。。
汤=美汤(doc)#适用于此
您需要阅读文档以了解如何通过标记导航,我看到了一个关于XML的内容,您可以尝试使用它们

使用pythonlxml的lib,在

您可以从以下内容开始:

导入请求
从lxml导入etree、html
#编辑:是的,BeautfulSoup也很有效,就像你朋友以前说的那样
从bs4导入BeautifulSoup
url=”http://api.brain-map.org/api/v2/data/query.xml?num_rows=10000&start_row=10001&&criteria=model::Gene,rma::标准,产品[缩写$eq%27鼠标%27]”
req=请求。获取(url)
doc=req.text
root=etree.XML(doc)#用于此或。。。
汤=美汤(doc)#适用于此

您需要阅读文档以了解如何通过标记导航

您应该了解如何解析XML并提取所需的信息这太宽泛/模糊,而且可能离题。请看,。您应该看看如何解析XML并提取所需信息。这太宽泛/模糊了,可能离题了。请看。