我正在努力弄清从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
感谢您的帮助和指导!
答案 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