Файл JSON — это файл, в котором хранятся простые структуры данных и объекты в формате нотации объектов JavaScript (JSON), который является стандартным форматом обмена данными. Он в основном используется для передачи данных между веб-приложением и сервером.Объект JSON содержит данные в виде пары ключ/значение. Ключи — это строки, а значения-типы JSON. Ключи и значения разделяются двоеточием. Каждая запись (пара ключ/значение) разделяется запятой. Файлы JSON являются легкими, текстовыми, удобочитаемыми и могут редактироваться с помощью текстового редактора.
Примечание: Для получения дополнительной информации обратитесь к Работа с данными JSON в Python
XML — это язык разметки, предназначенный для хранения данных. Это чувствительно к регистру. XML предлагает вам определить элементы разметки и создать индивидуальный язык разметки. Базовая единица в XML известна как элемент. Язык XML не имеет предопределенных тегов. Это упрощает обмен данными, передачу данных, изменения платформы, доступность данных Расширение XML-файла .xml
Примечание: Для получения дополнительной информации обратитесь к XML | Основы
Формат файла JSON и XML используются для передачи данных между клиентом и сервером.
Однако оба они служат одной и той же цели, хотя и различаются по своему способу.
Сравнение между JSON и XML
JSON | XML |
---|---|
Объект 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()