Рубрики
Без рубрики

Python XML к JSON, XML для диктографии

Python XML для Dict, Python XML к JSON, Python XMLTODICT модуль, Python XML в JSON с пространством имен, атрибут Python XML к JSON, Python XML-файл в Conversion JSON, XMLTODICT.PARSE (), XMLTODICT.unparse (), Python Json до XML , Python преобразует XML в код пример данных JSON.

Автор оригинала: Pankaj Kumar.

Сегодня мы узнаем, как преобразовать XML в JSON и XML, чтобы он дикторировать в Python. Мы можем использовать Python xmltodict Модуль для чтения файла XML и преобразовать его в Dict или Djson Data. Мы также можем передавать большие файлы XML и преобразовывать их в словарь. Перед тем как наступление в кодирующую часть, давайте сначала понять, почему требуется преобразование XML.

Преобразование XML в Dict/Json

Файлы XML медленно устаревают, но в Интернете есть довольно большие системы, которые все еще используют этот формат. XML тяжелее, чем JSON, и поэтому большинство разработчиков предпочитают последние в их приложениях.

Когда приложения должны понимать XML, предоставленную любым источником, это может быть утомительная задача для преобразования его в JSON. xmltodict Модуль в Python делает эту задачу чрезвычайно простым и простым для выполнения.

Начало работы с XMLTODICT

Мы можем начать с xmltodict Модуль, но нам нужно сначала установить его. Мы будем в основном использовать Пип выполнить установку.

Установите модуль XMLTODICT

Вот как мы можем установить модуль XMLTODICT, используя индекс пакета Python (PIP):

pip install xmltodict

Это будет сделано быстро как xmltodict это очень легкий модуль. Вот вывод для этой установки:

Лучшим вещам этой установки было то, что этот модуль не зависит от любого другого внешнего модуля, и поэтому он легкий вес и избегает любых конфликтов версии.

Просто чтобы продемонстрировать, на основе систем на основе Debian, этот модуль можно легко установить с помощью APT инструмент:

sudo apt install python-xmltodict

Еще один точка плюс состоит в том, что этот модуль имеет Официальный пакет Debian Отказ

Python XML к JSON

Лучшее место для начала попытки этого модуля будет выполнять операцию, которую он был сделан, чтобы выполнить в первую очередь, выполнять XML к конверсии JSON. Давайте посмотрим на фрагмент кода о том, как это можно сделать:

import xmltodict
import pprint
import json

my_xml = """
    
      123
      Shubham
    
"""

pp = pprint.PrettyPrinter(indent=4)
pp.pprint(json.dumps(xmltodict.parse(my_xml)))

Давайте посмотрим на вывод этой программы:

Здесь мы просто используем Разбор (...) Функция для преобразования данных XML в JSON, а затем мы используем JSON Модуль для печати JSON в лучшем формате.

Преобразование файла XML в JSON

Сохранение данных XML в самом коде не всегда возможно, ни это реалистично. Обычно мы сохраняем наши данные в базе данных, либо в некоторых файлах. Мы можем напрямую выбрать файлы и конвертировать их в JSON. Давайте посмотрим на фрагмент кода, как мы можем выполнить преобразование с файлом XML:

import xmltodict
import pprint
import json

with open('person.xml') as fd:
    doc = xmltodict.parse(fd.read())

pp = pprint.PrettyPrinter(indent=4)
pp.pprint(json.dumps(doc))

Давайте посмотрим на вывод этой программы:

Здесь мы использовали другой модуль PPRINT, чтобы распечатать вывод в формате. Помимо этого, используя Открыть (...) Функция была простыми, мы использовали его получить файл дескриптора, а затем анализируют файл в объект JSON.

Python XML дикто

Поскольку имя модуля предложит себе, XMLTODICT фактически преобразует данные XML, которые мы предоставляем просто словарь Python. Итак, мы можем просто получить доступ к данным с ключами словаря. Вот образец программы:

import xmltodict
import pprint
import json

my_xml = """
    
      123
      Shubham
    
"""
my_dict = xmltodict.parse(my_xml)
print(my_dict['audience']['id'])
print(my_dict['audience']['id']['@what'])

Давайте посмотрим на вывод этой программы:

Итак, теги могут использоваться в качестве клавиш вместе с клавишами атрибута. Клавиши атрибута просто должны быть префиксированы с @ символ.

Поддержка пространств имен в XML

В данных XML у нас обычно есть набор пространств имен, которые определяют объем данных, предоставляемых файлом XML. При преобразовании в формат JSON, то необходимо, чтобы эти пространства имен сохранялись также в формате JSON. Рассмотрим этот образец файла XML:


    
        123
        Shubham
    

Вот образец программы о том, как мы можем включать пространства имен XML в формате JSON, а также:

import xmltodict
import pprint
import json

with open('person.xml') as fd:
    doc = xmltodict.parse(fd.read(), process_namespaces=True)

pp = pprint.PrettyPrinter(indent=4)
pp.pprint(json.dumps(doc))

Давайте посмотрим на вывод этой программы:

JSON до XML преобразования

Хотя преобразование от XML в JSON является главной целью этого модуля, XMLTodict также поддерживает обратную работу, преобразуя JSON в форму XML. Мы предоставим данные JSON в самой программе. Вот образец программы:

import xmltodict

student = {
  "data" : {
    "name" : "Shubham",
    "marks" : {
      "math" : 92,
      "english" : 99
    },
    "id" : "s387hs3"
  }
}

print(xmltodict.unparse(student, pretty=True))

Давайте посмотрим на вывод этой программы:

Обратите внимание, что предоставление одного ключа JSON необходимо правильно работать. Если мы считаем, что мы изменим нашу программу, чтобы содержать несколько клавиш JSON на самом первом уровне, как:

import xmltodict

student = {
    "name" : "Shubham",
    "marks" : {
        "math" : 92,
        "english" : 99
    },
    "id" : "s387hs3"
}

print(xmltodict.unparse(student, pretty=True))

В этом случае у нас есть три клавиатуры на корневом уровне. Если мы попытаемся устанавливать эту форму JSON, мы столкнемся к этой ошибке:

Это происходит, потому что XMLTODICT должен построить JSON с самым первым ключом в качестве тега CORT XML. Это означает, что должен быть только один ключ JSON только на корневом уровне данных.

Заключение

В этом уроке мы изучали отличный модуль Python, который можно использовать для разбора и преобразования XML в JSON и VICE-VERSA. Мы также узнали, как преобразовать XML для Dict с использованием модуля XMLTODICT.

Ссылка: API док