我创建了一个将数据写入xml文件的代码。但它无法正常工作。它给出了一个名为“TypeError:必须是Element,而不是None”的错误 “
这是我的代码:
import xml.etree.cElementTree as ET
import lxml.etree
import lxml.builder
class create_xml:
def __init__(self):
pass
def write_xml(predicted_list, image_list):
print predicted_list
print image_list
i = 0
root = ET.Element("video_data")
for image in image_list:
doc = ET.SubElement(root, 'frame').set('name', image)
predicted_item = predicted_list[i]
ET.SubElement(doc, predicted_item) **Gives error in here**
# doc.text = predicted_list[i]
i += 1
tree = ET.ElementTree(root)
tree.write("/opt/lampp/htdocs/video_frames/test.xml")
我需要输出如下,
<video_data>
<frame name="">
<predicted_item>output</predicted_item>
</frame>
</video_data>
但如果没有出现错误的代码段,它会给出如下输出:
<video_data><frame name="/opt/lampp/htdocs/video_frames/bb/frame48.jpg" /></video_data>
请帮我解决一下,谢谢
答案 0 :(得分:1)
问题是doc
变为None
,因为它等于set()
调用的结果。相反,您的意思是doc
指向SubElement
实例:
doc = ET.SubElement(root, 'frame')
doc.set('name', image)