Как преобразовать XML в Dict

Я хочу найти отличное решение для преобразования XML в dict и наоборот в python

4 Solutions collect form web for “Как преобразовать XML в Dict”

Следующий рецепт должен быть полезен:

  • XML как словарь

xmltodict (полное раскрытие: я его написал) делает именно это, следуя этому «стандарту» . Это Expat- based, поэтому он очень быстрый и не требует загрузки всего дерева XML в память.

>>> print(json.dumps(xmltodict.parse(""" ... <mydocument has="an attribute"> ... <and> ... <many>elements</many> ... <many>more elements</many> ... </and> ... <plus a="complex"> ... element as well ... </plus> ... </mydocument> ... """), indent=4)) { "mydocument": { "@has": "an attribute", "and": { "many": [ "elements", "more elements" ] }, "plus": { "@a": "complex", "#text": "element as well" } } } 

При конвертации между словарями XML и Python существуют некоторые интересные угловые случаи, которые делают этот нетривиальный (списки атрибутов? Списки анонимных списков «одиночными» списками? Content eval?): Просмотрите этот документ из дистрибутива PicklingTools: XML to Конверсии Dict : http://www.picklingtools.com

Документы обсуждают, как это сделать, но вот простой пример. В файле с именем «example.xml» мы добавим следующий XML:

 <top> <a>1</a> <b>2.2</b> <c>three</c> </top> 

Чтобы обработать этот файл и превратить его в словарь:

 >>> from xmlloader import * >>> example = file('example.xml', 'r') >>> xl = StreamXMLLoader(example, 0) # 0 = All defaults on options >>> result = xl.expectXML() >>> print result {'top': {'a': '1', 'c': 'three', 'b': '2.2'}} 

Я думаю, что лучший способ будет сворачивать ваши собственные, чтобы удовлетворить ваши потребности. Получите lxml , прочитайте в документах, и вам должно быть хорошо идти. Если у вас есть сомнения, вернитесь назад 🙂

  • Есть ли элегантный способ подсчета элементов тега в XML-файле с использованием lxml в python?
  • Анализ XML с помощью Python - элементов доступа
  • Получение дерева DOM документа XML
  • Мини-микрофон Python: как получить доступ к элементу
  • Python Lxml (objectify): проверка наличия тега
  • Функция Python для списка xml
  • lxml сохраняет порядок атрибутов?
  • Как обновить XML-файл с помощью lxml
  •  
    Interesting Posts for Van-Lav

    обеспечение декартового произведения ключей появляется в таблице Pandas

    Разработка сборки панд, дающая импортеррор: расширение C: «hashtable» не построена на python 3.4 (anaconda)

    как установить пакет с pypi в python 2.7?

    Рамка носа Python: как остановить выполнение при первом сбое

    Как добавить цвета к каждой отдельной поверхности цилиндра с помощью matplotlib

    Создание матрицы из кадра данных Pandas для отображения связности

    Функции функции f2py с массивом

    py2exe – генерировать один исполняемый файл

    Извлечение содержимого из каталога на сетевом диске (Windows)

    Python: генерировать случайное число между x и y, которое кратно 5

    как подключить разные коммутаторы к различным пультом дистанционного управления в мини-мини?

    Python argparse: параметры имени

    Как разделить длинные правила регулярных выражений на несколько строк в Python

    Что такое «среда выполнения»?

    Учебное пособие или руководство по созданию сценариев создания XCode

    Python - лучший язык программирования в мире.