Возможно ли построить строку XML из структуры Python (например, вложенные списки, словари и т. Д.) Или это вопрос, не имеющий смысла?Создание XML из структуры Python
Есть ли стандартный инструмент?
Благодаря
Возможно ли построить строку XML из структуры Python (например, вложенные списки, словари и т. Д.) Или это вопрос, не имеющий смысла?Создание XML из структуры Python
Есть ли стандартный инструмент?
Благодаря
Если вам нужен какой-то пользовательский формат, вы можете использовать xml.etree.ElementTree
для программного создания такого формата. Например:
from xml.etree import ElementTree
def dict2xml(d, parent=None):
if parent is None:
parent = ElementTree.Element('xml')
for key, value in d.items():
if isinstance(value, str):
element = ElementTree.SubElement(parent, key)
element.text = value
elif isinstance(value, dict):
element = ElementTree.SubElement(parent, key)
dict2xml(value, element)
elif isinstance(value, list):
for text in value:
element = ElementTree.SubElement(parent, key)
element.text = str(text)
else:
raise TypeError('Unexpected value type: {0}'
.format(type(value)))
return parent
d = {'a': 'a contents',
'b': {'c': 'c contents',
'd': 'd contents',
},
'e': range(3),
}
print ElementTree.tostring(dict2xml(d))
Формирует следующий вывод:
<xml><a>a contents</a><b><c>c contents</c><d>d contents</d></b><e>0</e><e>1</e><e>2</e></xml>
Там нет сериализации объекта к XML в стандартной библиотеке, но есть pyxser.
этот вложенный список словарь содержит тег значения? – Nilesh
Если вы просто хотите сохранить некоторые объекты Python, используйте pickle. Все, что является полностью общим для объективных объектов Python, будет очень специфичным для Python, поэтому вы можете также использовать pickle. Если вы хотите взаимодействовать с каким-либо другим языком, вы должны знать, какие форматы данных (а не только «XML», но точную схему) вы также можете поддерживать на других концах, и вам нужно сообщить нам, чтобы мы могли рассказать вам, какие из них поддерживаются также Python. – delnan
Мне нужен XML для сохранения данных для MS Project, и я искал что-то лучше, чем строковое построение строк. – Don