首页 > 解决方案 > 从 XML 文档中获取数据

问题描述

我正在努力弄清楚从 XML 文档中获取数据。我正在查看此来源:http ://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/并希望提取以下数据(4 列 1 行):

<CcyNm_EN>U.S. Dollar</CcyNm_EN>
<Nominal>1</Nominal>
<Rate>2484.15</Rate>
<date>24.03.2015</date>

到目前为止,我可以取得进展,直到这里,不知道该做什么进一步:

import requests
import xml.etree.ElementTree as et
import pandas as pd

url = 'http://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/'
xml_data = requests.get(url).content
root = et.fromstring(xml_data)
root.attrib

任何帮助和指导表示赞赏!

标签: xmlpython-3.xpandas

解决方案


您可以使用下面的代码来获取值。基本上,您需要遍历根节点以查找所有子节点并提取数据。

编辑:更新答案以在 Dataframe 中有输出,并且输出中只有四个元素。

import requests
import xml.etree.ElementTree as et
import pandas as pd

url = 'http://cbu.uz/uzc/arkhiv-kursov-valyut/xml/USD/2015-03-26/'
xml_data = requests.get(url).content
root = et.fromstring(xml_data)
required_tag = [ 'CcyNm_EN','Nominal','Rate','date']

root.attrib

data_dict = {}
for elem in root:
    for el in elem:  
        if el.tag in required_tag:
            data_dict.setdefault(el.tag,[]).append(el.text)

df = pd.DataFrame.from_dict(data_dict)

输出 :

   CcyNm_EN   Nominal Rate     date
0 U.S. Dollar 1       2484.15  24.03.2015

推荐阅读