xml - 从 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
任何帮助和指导表示赞赏!
解决方案
您可以使用下面的代码来获取值。基本上,您需要遍历根节点以查找所有子节点并提取数据。
编辑:更新答案以在 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
推荐阅读
- python - 列表(地图)错误:TypeError:只能将整数标量数组转换为标量索引
- spring - 为什么 Hybris 控制器端点不能使用 Postman 等工具作为 REST 使用?
- hyperledger - Hyperledger 作曲家休息服务器的隐私
- powershell - 导入 PowerShell 模块时,我可以挂钩哪些事件(.net、WMI 等)以执行操作?
- c# - 将参数传递给 ASP.NET Core 中的 jQuery 加载函数
- android - 为 Android 应用生成 SHA-256 密钥
- r - 转换为 plotly 的 ggplot2 图形在 Shiny 应用程序中没有响应
- python - 需要在 Python 中将 CSV 输出打印到单独的行中,而不是一个长字符串
- ldap - OpenLdap 复制
- javascript - Javascript,数组在不同的地方显示不同的长度