Python: ошибка при генерации XML-файла из словаря Python

ImportError: No module named elementtree.SimpleXMLWriter      

Код:

import xml.etree.cElementTree as ET 

root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 
field1 = ET.SubElement(doc, "field1") 
field1.set("name", "blah") 
field1.text = "some value1" 
field2 = ET.SubElement(doc, "field2") 
field2.set("name", "asdfasd") 
field2.text = "some vlaue2" 
tree = ET.ElementTree(root) 
tree.write("filename.xml") 

Кто-нибудь может помочь?

0
задан 30 September 2013 в 13:40

1 ответ

Править: Имейте Вас, назвал Ваш сценарий: xml.py? Измените его, и это должно работать.

Как обходное решение, Вы могли использовать etree в lxml пакете. Если Вы не имеете lxml установленный, введите:

sudo apt-get install python-lxml

И для измененной версии Вашей программы:

import lxml.etree as ET 

root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 
field1 = ET.SubElement(doc, "field1") 
field1.set("name", "blah") 
field1.text = "some value1" 
field2 = ET.SubElement(doc, "field2") 
field2.set("name", "asdfasd") 
field2.text = "some vlaue2" 
tree = ET.ElementTree(root) 
tree.write("filename.xml") 

Вывод:

<root>
   <doc>
        <field1 name="blah">some value1</field1>
        <field2 name="asdfasd">some vlaue2</field2>
   </doc>
</root>

Для различий между этими двумя решениями, lxml.etree и ElementTree, взгляните на этот документ lxml.etree по сравнению с ElementTree.

cElementTree немного быстрее по сравнению с lxml.etree, так или иначе последний является все еще быстрым xml синтаксическим анализатором, записанным в C, и я думаю, что различие незначительно (сравнительные тесты здесь).

1
ответ дан 30 September 2013 в 13:40

Другие вопросы по тегам:

Похожие вопросы: