Есть список словарей вида:
[{"first_name":"Ivan", "last_name":"Ivanov", "city":"Moscow"}, {"first_name":"Sergey", "last_name":"Sidorov", "city":"Sochi"}...]
Мне нужно этот список записать в xml формат вида:
Как это реализовать, используя стандартные библиотеки python?
Вот мой код:
import xml.etree.ElementTree as ET
root = ET.Element('root')
person = ET.SubElement(root,'person')
a=[] # тот список
for key in a:
ET.SubElement(person,'first_name').text = key['first_name']
ET.SubElement(person,'last_name').text = key['last_name']
ET.SubElement(person,'city').text = key['city']
tree = ET.ElementTree(root)
tree.write('xmlf.xml')
Но этот цикл неправильный, выход такой:
Как его исправить?
Ответ
Исправил код в вопросе:
items = [
{"first_name": "Ivan", "last_name": "Ivanov", "city": "Moscow"},
{"first_name": "Sergey", "last_name": "Sidorov", "city": "Sochi"},
]
import xml.etree.ElementTree as ET
root = ET.Element('root')
for i, item in enumerate(items, 1):
person = ET.SubElement(root, 'person' + str(i))
ET.SubElement(person, 'first_name').text = item['first_name']
ET.SubElement(person, 'last_name').text = item['last_name']
ET.SubElement(person, 'city').text = item['city']
tree = ET.ElementTree(root)
tree.write('xmlf.xml')
Результат (с добавлением отступов):
Комментариев нет:
Отправить комментарий