我正在尝试在XML文件的字典列表中写一个名称,但是我将IndexError作为子索引超出范围。我是XML文件的新手。这是我的代码
import os
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import Element, SubElement, Comment, tostring
from xml.dom import minidom
name = [{'vehicle': 'honda'}, {'vehicle': 'hyundai'}, {'vehicle': 'mercedes'}, {'vehicle': 'rangerover'}, {'vehicle': 'bentley'}, {'vehicle': 'toyota'}, {'vehicle': 'mecerati'}, {'vehicle': 'lamborgini'}]
l = [(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (1, 0), (1, 2)]
for step in range(10):
i,j = l[step]
print(i,j)
name1 = str(name[i]['vehicle'])
root = Element('annotation')
folder = SubElement(root, 'folder')
folder.text="testing"
filename=SubElement(root, 'filename')
filename.text="1.jpg"
path=SubElement(root, 'path')
path.text="path"
source=SubElement(root, 'source')
obj=SubElement(root, 'object')
name=SubElement(obj,'name')
name.text=str(name1)
tree = ET.ElementTree(root)
tree.write(os.path.join('testing',str(step)+".xml"))
当使用相同的i值进行第二次迭代时,将引发错误。
0 1
0 2
---> 10 name1 = str(name[i]['vehicle'])
IndexError: child index out of range
您能帮我弄清楚我在做什么错以及解决方法吗?我发现了一个类似的问题,但是并没有解决我的错误Child索引超出范围,python元素树
在您的for循环中name=SubElement(obj,'name')
,您将覆盖原始名称列表。将该变量名称更改为其他名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句