在这里,我想将csv列表传递到python代码中,以便仅检索csv列表中匹配的Childone值。正确的方法是什么?你知道吗
import xml.etree.ElementTree as ET
import csv
tree = ET.parse("C:/Users/thisuser/Desktop/stack.xml")
root = tree.getroot()
with open('C:/Users/thisuser/Desktop/stack.csv', 'rb') as f:
reader = csv.reader(f)
your_list = list(reader)
for ticket in root.findall('.//Parent'):
Childone = ticket.find('.//Childone').text
for Childone in your_list:
for ticket2 in ticket.findall('.//ParentTwo'):
Childtwo = ticket2.find('.//Childtwo').text
print "Childone={Childone}, Childtwo={Childtwo}".format(Childone=Childone, Childtwo=Childtwo)
期望结果
ChildOne=2 ChildTwo=c
ChildOne=2 ChildTwo=d
ChildOne=3 ChildTwo=c
ChildOne=3 ChildTwo=e
当前结果
Childone=['2'], Childtwo=a
Childone=['2'], Childtwo=b
Childone=['3'], Childtwo=a
Childone=['3'], Childtwo=b
Childone=['2'], Childtwo=c
Childone=['2'], Childtwo=d
Childone=['3'], Childtwo=c
Childone=['3'], Childtwo=d
Childone=['2'], Childtwo=c
Childone=['2'], Childtwo=e
Childone=['3'], Childtwo=c
Childone=['3'], Childtwo=e
XML示例
<Parent>
<Childone>1</Childone>
<ParentTwo>
<Childtwo>a</Childtwo>
</ParentTwo>
<ParentTwo>
<Childtwo>b</Childtwo>
</ParentTwo>
</Parent>
<Parent>
<Childone>2</Childone>
<ParentTwo>
<Childtwo>c</Childtwo>
</ParentTwo>
<ParentTwo>
<Childtwo>d</Childtwo>
</ParentTwo>
</Parent>
<Parent>
<Childone>3</Childone>
<ParentTwo>
<Childtwo>c</Childtwo>
</ParentTwo>
<ParentTwo>
<Childtwo>e</Childtwo>
</ParentTwo>
</Parent>
EXCEL示例
我得到这个错误:
AttributeError:“NoneType”对象没有属性“text”
您可以迭代csv,只处理具有匹配
Childone
元素的Parent
元素(使用XPath predicate)。你知道吗而且,您已经知道
Childone
元素值,所以您只需要Childtwo
值。。。你知道吗XML输入(测试.xml)你知道吗
CSV(测试.csv)你知道吗
Python
输出
相关问题 更多 >
编程相关推荐