You are currently viewing Python – преобразование XML в JSON

Python – преобразование XML в JSON

Файл JSON — это файл, в котором хранятся простые структуры данных и объекты в формате нотации объектов JavaScript (JSON), который является стандартным форматом обмена данными. Он в основном используется для передачи данных между веб-приложением и сервером.Объект JSON содержит данные в виде пары ключ/значение. Ключи — это строки, а значения-типы JSON. Ключи и значения разделяются двоеточием. Каждая запись (пара ключ/значение) разделяется запятой. Файлы JSON являются легкими, текстовыми, удобочитаемыми и могут редактироваться с помощью текстового редактора.

Примечание: Для получения дополнительной информации обратитесь к Работа с данными JSON в Python

XML — это язык разметки, предназначенный для хранения данных. Это чувствительно к регистру. XML предлагает вам определить элементы разметки и создать индивидуальный язык разметки. Базовая единица в XML известна как элемент. Язык XML не имеет предопределенных тегов. Это упрощает обмен данными, передачу данных, изменения платформы, доступность данных Расширение XML-файла .xml
Примечание: Для получения дополнительной информации обратитесь к XML | Основы
Формат файла JSON и XML используются для передачи данных между клиентом и сервером.
Однако оба они служат одной и той же цели, хотя и различаются по своему способу.

Сравнение между JSON и XML

JSONXML
Объект JSON имеет типXML — данные не имеют типа
Типы JSON: строка, число, массив, логическое значениеВсе XML — данные должны быть строковыми
Данные легко доступны в виде объектов JSONНеобходимо проанализировать XML-данные
JSON поддерживается большинством браузеровКроссбраузерный анализ XML может быть сложным
JSON не имеет возможностей отображенияXML предоставляет возможность отображения данных, поскольку это язык разметки
JSON поддерживает только текстовые и числовые типы данных.XML поддерживает различные типы данных, такие как числа, текст, изображения, диаграммы, графики и т.д. Он также предоставляет возможности для передачи структуры или формата данных с фактическими данными.
Получить значение легкоПолучение значения затруднено
Поддерживается многими инструментами AjaxНе полностью поддерживается Ajax toolkit
Полностью автоматизированный способ десериализации/сериализации JavaScriptРазработчикам приходится писать код JavaScript для сериализации/де сериализации из XML
Встроенная поддержка объектаОбъект должен быть выражен условностями – в основном упущено использование атрибутов и элементов.
Он поддерживает только кодировку UTF-8.Он поддерживает различные кодировки
Он не поддерживает комментарии.Он поддерживает комментарии.
Файлы JSON легко читаются по сравнению с XML.XML — документы относительно сложнее читать и интерпретировать.
Он не обеспечивает никакой поддержки пространств именОн поддерживает пространства имен.
Он менее защищен.Это более безопасно, чем JSON.

Преобразование Xml в json

Для обработки формата файла JSON Python предоставляет модуль с именем json.

ШАГ 1. установите модуль xmltodict с помощью pip или любого другого менеджера пакетов python

pip install xmltodict

ШАГ 2. импорт модуля json с помощью ключевого слова import

import json

ШАГ 3: Прочитайте xml-файл

здесь, “data_dict” — это переменная, в которую мы загрузили наши XML-данные после преобразования их в тип данных словаря.

with open("xml_file.xml") as xml_file:
 data_dict = xmltodict.parse(xml_file.read())

ШАГ 4: Закройте XML-файл

xml_file.close()

ШАГ 5: Преобразуйте xml_data в словарь и сохраните его в переменном объекте JSON, окруженном фигурными скобками { }. Они записываются в парах ключей и значений. функция json.loads() принимает строку и возвращает объект json.
json.dumps() принимает объект json и возвращает строку. Мы используем xml_data в качестве входной строки и генерируем объект python, поэтому мы используем json.dumps()

json_data = json.dumps(data_dict)

Здесь json_data-это переменная, используемая для хранения сгенерированного объекта.

ШАГ 6. Запишите json_data в выходной файл

with open("data.json", "w") as json_file:
        json_file.write(json_data)

ШАГ 7: Закройте выходной файл

json_file.close()

Пример:

XML-файл:

# Program to convert an xml
# file to json file

# import json module and xmltodict
# module provided by python
import json
import xmltodict


# open the input xml file and read
# data in form of python dictionary
# using xmltodict module
with open("test.xml") as xml_file:
	
	data_dict = xmltodict.parse(xml_file.read())
	xml_file.close()
	
	# generate the object using json.dumps()
	# corresponding to json data
	
	json_data = json.dumps(data_dict)
	
	# Write the json data to output
	# json file
	with open("data.json", "w") as json_file:
		json_file.write(json_data)
		json_file.close()

Выход: