python - 如何将 XML 文件读入 Pandas Dataframe,如在 Excel 中读取 XML 表
问题描述
我有一个 xml 文件,我正在尝试遍历标签以将其转换为 pandas 数据框。我目前的过程是用 excel 作为“XML 表”打开 XML 文件,但这需要很长时间。试图在 Python 中找到类似的过程。
我正在尝试遵循许多其他 Stack Overflow 问题和文章中提供的代码,例如此处和此处
我相信我面临两个问题:
拥有命名空间会影响我的 xml 吗?
我不想将我的所有标签都指定为 19.7.1.6 中的解决方案。元素树文档。我只希望我的所有标签都显示为每个“安全”的列。如果它没有那个标签,它应该是空的。我也不想做一个讨厌的 if-else。
问题是当我运行代码时:
import xml.etree.ElementTree as et
etree = et.parse(xml_path)
test = etree.getroot()
并尝试按照上述链接中的建议进行迭代,我无法轻松访问子节点。
示例文件:
<?xml version="1.0"?>
<SecurityInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/SecurityInformation.xsd">
<Security>
<Country>United States</Country>
</Security>
</SecurityInformation>
解决方案
我已经为类似的用例制作了一个包。它也可以在这里工作。
pip install pandas_read_xml
你可以做类似的事情
import pandas_read_xml as pdx
df = pdx.read_xml('filename.xml', ['SecurityInformation'])
为了展平,你可以
df = pdx.flatten(df)
或者
df = pdx.fully_flatten(df)
推荐阅读
- ios - Flutter beacons_plugin - 未处理的异常:MissingPluginException(在通道 beacons_plugin 上找不到方法 startMonitoring 的实现)
- google-sheets-formula - 使用自定义公式按单元格中值的长度过滤
- java - Hazelcast 插入和更新
- python - Python错误:打印(数据+“\ n”)类型错误:尝试通过网络套接字发送命令时无法将str连接到字节
- django - 不能用新用户登录,只能用老用户登录(Django Rest Framework views.obtain_auth_token)
- spring - 在 tomcat 7.x 中配置 Apache dbcp2 连接池
- python - Python:避免子模块中的重复导入初始化
- django - 有没有其他方法可以避免在抓取时重复数据并避免将相同的数据存储在数据库中?
- pyramid - 使用滤锅反序列化 Multidict
- github-api - 是否有一个端点可以为 github 激活“文件查找器”