从XML文档获取数据

时间:2019-02-08 05:19:32

标签: xml python-3.x pandas

我正在努力弄清从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

感谢您的帮助和指导!

1 个答案:

答案 0 :(得分:1)

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

编辑:更新答案以在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