【发布时间】:2019-05-10 13:52:47
【问题描述】:
我收到了来自http://dataportal.ins.tn/en/API 的以下 XML 响应
https://www.dropbox.com/s/8x6tpbpd6m8j1f9/DimensionElements_response_2019-05-09_11-46.xml?dl=0
我使用以下代码转换为 Dataframe:
import requests
import xml.etree.ElementTree as ET
import pandas as pd
Dimension_Id = 'OBJ5263019'
Language = '1033'
Request_URL = 'http://dataportal.ins.tn/WebApi/GetDimensionElements'
Method_Post_Body = "<QueryMessage lcid='" + Language + "'> <DataWhere> <DimensionId>" + Dimension_Id + "</DimensionId> </DataWhere> </QueryMessage>"
Post_Response = requests.post(Request_URL, data=Method_Post_Body, headers={'Content-type': 'text/xml'})
XTree = Post_Response.content
XRoot = ET.XML(XTree)
XML_List = []
XML_Structure_All = pd.DataFrame()
for Tag_1 in XRoot[1]:
for Child in Tag_1.iter():
XML_Dict = Child.attrib
XML_List.append(XML_Dict)
XML_Dimension_Items = pd.DataFrame(XML_List)
我想为每个元素生成父元素,想将“元素”属性“键”视为父元素。
在上面的例子中:
第一个元素没有父元素,所以我想保留 "Parent" = ''
第二个元素 (KEY="27932019") 有多个子元素,因此 KEY="27932019" 将是子元素的父代码,这应该适用于所有嵌套元素。
有没有办法做到这一点?
【问题讨论】:
标签: python xml python-3.x pandas dataframe