![](/img/trans.png)
[英]How do you create a non-nested xml element using Python's lxml.objectify?
[英]How I can take XML data using lxml.objectify into the DataFrame pandas and show it in table format?
這是一個 XML 文件,其中包含我想使用lxml.objectify和pandas.DataFrame執行任務的數據
文件: students.xml
<?xml version="1.0" encoding="UTF-8"?>
<college>
<department>
<name>Information Technology</name>
<semester>
<sem_3>
<student_no>1</student_no>
<student_name>Ravindra</student_name>
<student_city>Ahmedabad</student_city>
</sem_3>
</semester>
</department>
<department>
<name>Computer Engineering</name>
<semester>
<sem_3>
<student_no>2</student_no>
<student_name>Surya</student_name>
<student_city>Gandhinagar</student_city>
</sem_3>
</semester>
</department>
</college>
我試過了,只能得到這個輸出。
import pandas as pd
from lxml import objectify
from pandas import DataFrame
xml = objectify.parse(open('students.xml'))
root = xml.getroot()
number = []
name = []
city = []
for i in range(0, 2):
obj = root.getchildren()[i].getchildren()
for j in range(0, 1):
child_obj = obj[1].getchildren()[j].getchildren()
number.append(child_obj[0])
name.append(child_obj[1])
city.append(child_obj[2])
df = pd.DataFrame(list(zip(number, name, city)), columns =['student_no', 'student_name', 'student_city'])
print(df)
-----------------------------------------------
student_no student_name student_city
0 [[[1]]] [[[Ravindra]]] [[[Ahmedabad]]]
1 [[[2]]] [[[Surya]]] [[[Gandhinagar]]]
-----------------------------------------------
我無法獲得這樣的輸出...
-----------------------------------------------
student_no student_name student_city
0 1 Ravindra Ahmedabad
1 2 Surya Gandhinagar
-----------------------------------------------
你能幫我解決這個問題嗎?
您正在將 lxml 對象附加到您的列表中
import pandas as pd
from lxml import objectify
from pandas import DataFrame
with open('students.xml') as f:
xml = objectify.parse(f)
root = xml.getroot()
number = []
name = []
city = []
for i in range(0, 2):
obj = root.getchildren()[i].getchildren()
for j in range(0, 1):
child_obj = obj[1].getchildren()[j].getchildren()
number.append(int(child_obj[0].text))
name.append(child_obj[1].text)
city.append(child_obj[2].text)
data = {"student_no": number, 'student_name': name, 'student_city': city}
df = pd.DataFrame(data)
print(df)
輸出:
student_no student_name student_city
0 1 Ravindra Ahmedabad
1 2 Surya Gandhinagar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.