python - 从大型 XML 中提取标签到 csv
问题描述
我需要用 Excel 打开一个大型 XML 数据集(该文件是此处连接的 LEI 文件 。观察结果不超过 Excel 工作簿限制。我尝试从 XML 中提取四列到 csv。我的代码是:
cols = ["StartNodeID", "EndNodeID", "RelationshipType", "RelationshipDate_EndDate"]
rows = []
xmlparse = Xet.parse('D:\Descargas\concatenated_lei2file_StartNodeID.xml')
root = xmlparse.getroot()
Relationships = tree.findall('./RelationshipRecord/Relationship')
for elem in Relationships:
StartNodeID = elem.find("./RelationshipRecord/Relationship/EndNode/EndNodeID").text
EndNodeID = elem.find("EndNodeID").text
RelationshipType = elem.find("RelationshipType").text
RelationshipDate_EndDate = elem.find("RelationshipDate_EndDate").text
rows.append({"StartNodeID": StartNodeID,
"EndNodeID": EndNodeID,
"RelationshipType": RelationshipType,
"RelationshipDate_EndDate": RelationshipDate_EndDate})
df = pd.DataFrame(rows, columns=cols)
df.to_csv('D:\Descargas\concatenated_lei2file_output.csv')
我收到此错误:
----> 4 StartNodeID = elem.find("./RelationshipRecord/Relationship/EndNode/EndNodeID").text
5 EndNodeID = elem.find("EndNodeID").text
6 RelationshipType = elem.find("RelationshipType").text
AttributeError: 'NoneType' object has no attribute 'text'
这是一个相当大的集合。我能够使用 firstobjectXML 编辑器查看树结构。
我努力了:
- 使用崇高的文本简化树结构,从“关系”级别开始。
- 删除除 StartNode.NodeID 和 EndNode.NodeID 之外的所有列
但不断收到相同的错误通知。
解决方案
推荐阅读
- typescript - Pulumi 根据选择的栈修改 kubernetes 资源
- oracle - 我们可以在 OBIEE 中创建带有时间线的动态信息图表吗?
- java - 实现DnD时如何让jtable transferhandler高亮一行?
- azure - 在 Azure Function App 中使用 SignalR 并在门户上发布
- r - 有什么方法可以保护我的 R 源代码吗?
- rest - REST 实体版本
- python - 从一列pandas python中的字符串切片创建新列
- node.js - DynamoDB:无法更新节点 js 中的 dynamoDB 项
- java - 将字符串分成 3 部分并在 JAVA 中导出为 CSV
- flutter - 颤振中的JMS(Java消息服务)客户端?