【发布时间】:2021-02-11 23:19:47
【问题描述】:
我有一个XML,我正在尝试对其进行迭代并将其(只是tracking events 部分)保存到dataframe 中。
这是input XML:
<?xml version="1.0" encoding="UTF-8"?>
<trackingresponse>
<trackingdetails>
<trackingdetail>
<trackingnumber>1550161004</trackingnumber>
<trackingevents>
<trackingevent>
<date>2020-10-21T11:04:00+01:00</date>
<code>17</code>
</trackingevent>
<trackingevent>
<date>2020-10-21T08:41:00+01:00</date>
<code>18</code>
</trackingevent>
</trackingdetail>
</trackingdetails>
</trackingresponse>
我试过这段代码,但它显示空数据框:
response =requests.post(endpoint_url, data=t, headers = headers).text
# response is correct
response_tree = ET.fromstring(response)
data = []
for el in response_tree.iter('./*'):
for i in el.iter('*'):
data.append(dict(i.items()))
df = pd.DataFrame(data)
print(df)
我也尝试将text 值写入临时数据帧,但这也不会:
response_df = pd.read_csv('/home/test.csv')
response_df['date']= response_tree.find('.//date').text
response_df['code']= response_tree.find('.//code').text
我也试过这个,但它给了我所有元素作为一个新行:
for child in tree.iter('trackingevent'):
for elem in child.iter():
data = {str(elem.tag):[elem.text]}
if str(elem.text)=='None':continue
response_df = pd.DataFrame(data)
consolidated_list.append(response_df)
我只是想将xml 中的tracking events 变成dataframe
预期的数据框:
date code
2020-10-21T11:04:00+01:00 17
2020-10-21T08:41:00+01:00 18
【问题讨论】:
标签: python python-3.x xml dataframe elementtree