[英]Don't understand why getting an AttributeError for one XML field but not others
以下是我將xml轉換為csv的代碼。 empId
, fullName
被轉換為預期,但無法獲得城市currentAddress
工作。 我做錯了什么?
如果我在emp_head.append中使用currentAddress,則不執行任何操作;如果我使用"city"
,則它會出錯,並顯示錯誤消息"AttributeError: 'NoneType' object has no attribute 'tag'
。
XML:
<?xml version = '1.0' encoding = 'UTF-8'?>
<ns2:exportEmpData xmlns:ns2="http://webservice.example.com/">
<emplist>
<empId>6029</empId>
<fullName>Justin Clark</fullName>
<currentAddress houseNumber="14" street="Lepanto" city="Barcelona"/>
</emplist>
<emplist>
<empId>6078</empId>
<fullName>Jose Domingo</fullName>
<currentAddress houseNumber="48" street="Gran Via" city="Madrid"/>
</emplist>
</ns2:exportEmpData>
我的代碼:
import xml
import csv
import xml.etree.ElementTree as ET
tree = ET.parse('C:/emp/emplist.xml')
root = tree.getroot()
Emp_data = open('C:/emp/emplist.csv', 'wb')
csvwriter = csv.writer(Emp_data)
emp_head = []
count = 0
for member in root.findall('emplist'):
emp_nodes = []
if count == 0:
empId = member.find('empId').tag
emp_head.append(empId)
fullName = member.find('fullName').tag
emp_head.append(fullName)
currentAddress = member.find('currentAddress').tag
emp_head.append(currentAddress)
csvwriter.writerow(emp_head)
count = count + 1
empId = member.find('empId').text
emp_nodes.append(empId)
fullName = member.find('fullName').text
emp_nodes.append(fullName)
currentAddress = member.find('currentAddress').text
emp_nodes.append(currentAddress)
csvwriter.writerow(emp_nodes)
Emp_data.close()
我需要從上面的xml轉換3個字段:
empId,fullName,city
6029,Justin Clark,Barcelona
6078,Jose Domingo,Madrid
您需要執行以下操作:
currentAddress = member.find('currentAddress').attrib.get('city')
在這種情況下,獲取text
的值是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.