[英]Parse XML data to 2D array in python
我对 python 还很陌生,我刚刚了解 XML 文件和 2D arrays。 我正在尝试从 xml 文件中获取数据并将其导入 python 中的二维字符串数组。 我从表中创建了以下 xml 文件:
<members>
<member>
<FirstName>Jarrod</FirstName>
<LastName>Weiss</LastName>
<DOB>12-08-1991</DOB>
<DateJoined>4-05-2017</DateJoined>
<Paid>TRUE</Paid>
</member>
<member>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<DOB>22-09-1980</DOB>
<DateJoined>1-03-2016</DateJoined>
<Paid>TRUE</Paid>
</member>
</members>
我一直在尝试使用 Elementree,但没有运气。 这将访问 xml 文件中的最后一个条目,但不会访问其他条目。
import xml.etree.ElementTree as ET
mytree = ET.parse('members.xml')
myroot = mytree.getroot()
for x in myroot.findall('member'):
FirstName = x.find('FirstName').text
LastName = x.find('LastName').text
DOB = x.find('DOB').text
DateJoined = x.find('DateJoined').text
Paid = x.find('Paid').text
有任何想法吗?
import xml.etree.ElementTree as ET
mytree = ET.parse('members.xml') # to parse file
print(mytree.tag) # to get root tag
children = list(mytree) # to get children element
这是一个简单的 for 循环,用于打印内容、构造二维数组和字典列表(这是我的首选):
import xml.etree.ElementTree as ET
mytree = ET.parse('members.xml') # to parse file
print(mytree.tag) # to get root tag
children = list(mytree) # to get children element
arr = [] # 2D array
dic = [] # list of dict
for e in list(mytree):
print(e.tag) # prints "member"
ch = list(e) # get its children
element = []
elementdict = {}
for ee in ch:
print("\t", ee.tag, ":", ee.text)
element.append(ee.text) # add text to arr[i]
elementdict[ee.tag] = ee.text # add text to dictionnary
arr.append(element)
dic.append(elementdict)
print(arr) ## print 2D array
print(dic) ## print list of dictionaries
member
FirstName : Jarrod
LastName : Weiss
DOB : 12-08-1991
DateJoined : 4-05-2017
Paid : TRUE
member
FirstName : John
LastName : Smith
DOB : 22-09-1980
DateJoined : 1-03-2016
Paid : TRUE
## print(arr)
[['Jarrod', 'Weiss', '12-08-1991', '4-05-2017', 'TRUE'], ['John', 'Smith', '22-09-1980', '1-03-2016', 'TRUE']]
## print(dic)
[{'FirstName': 'Jarrod', 'LastName': 'Weiss', 'DOB': '12-08-1991', 'DateJoined': '4-05-2017', 'Paid': 'TRUE'}, {'FirstName': 'John', 'LastName': 'Smith', 'DOB': '22-09-1980', 'DateJoined': '1-03-2016', 'Paid': 'TRUE'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.