Сериализованный json массив python

Работа с модулем JSON в Python

JSON в Python обозначает JavaScript Object Notation, который является широко используемым форматом данных для обмена данными в Интернете. JSON – идеальный формат для организации передачи данных между клиентом и сервером. Его синтаксис аналогичен языку программирования JavaScript.

Основная цель JSON – передавать данные между клиентом и веб-сервером. Это простой в освоении и наиболее эффективный способ обмена данными. Его можно использовать с различными языками программирования, такими как Python, Perl, Java и т. д.

JSON в основном поддерживает 6 типов данных в JavaScript:

JSON построен на двух структурах:

  • Он хранит данные в парах имя / значение. Он рассматривается как объект, запись, словарь, хеш-таблица, список с ключами.
  • Упорядоченный список значений рассматривается как массив, вектор, список или последовательность.

Представление данных JSON похоже на словарь Python. Ниже приведен пример данных JSON:

Работа с Python JSON

Python поддерживает стандартную библиотеку marshal и pickle module, а JSON API ведет себя аналогично этой библиотеке. Python изначально поддерживает функции JSON.

Кодирование данных JSON называется сериализацией. Сериализация – это метод, при котором данные преобразуются в последовательности байтов и передаются по сети. Десериализация – это процесс, обратный декодированию данных, преобразованных в формат JSON. Этот модуль включает в себя множество встроенных функций.

Давайте посмотрим на эти функции:

['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_encoder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']

В этом разделе мы изучим следующие методы:

Сериализация JSON

Сериализация – это метод преобразования объектов Python в JSON. Иногда компьютеру требуется обработать большой объем информации, поэтому рекомендуется сохранить эту информацию в файле. Мы можем хранить данные JSON в файле с помощью функции JSON. Модуль json предоставляет методы dump() и dumps(), которые используются для преобразования объекта Python.

Читайте также:  Gradle java compile tasks

Объекты Python преобразуются в следующие объекты JSON. Список приведен ниже:

Объекты Python JSON
1. Dict Object
2. list, tuple Array
3. Str String
4. int, float Number
5. True true
6. False false
7. None null

Функция dump()

Python предоставляет функцию dump() для передачи (кодирования) данных в формате JSON, осуществляет запись данных JSON в файл. Она принимает два позиционных аргумента: первый – это объект данных, который нужно сериализовать, а второй – файловый объект, в который должны быть записаны байты.

Рассмотрим простой пример сериализации:

Import json # Key:value mapping student = < "Name" : "Peter", "Roll_no" : "0090014", "Grade" : "A", "Age": 20, "Subject": ["Computer Graphics", "Discrete Mathematics", "Data Structure"] >with open("data.json","w") as write_file: json.dump(student,write_file)

В приведенной выше программе мы открыли файл с именем data.json в режиме записи. Мы использовали режим записи потому что если файл не существует, он будет создан. Метод json.dump() преобразует словарь в строку JSON.

Функция dumps()

Функция dumps() используется для хранения сериализованных данных в файле Python. Она принимает только один аргумент, который представляет собой данные Python для сериализации. Файловый аргумент не используется, потому что мы не записываем данные на диск. Рассмотрим следующий пример:

import json # Key:value mapping student = < "Name" : "Peter", "Roll_no" : "0090014", "Grade" : "A", "Age": 20 >b = json.dumps(student) print(b)

JSON поддерживает примитивные типы данных, такие как строки и числа, а также вложенные списки, кортежи и объекты.

import json #Python list conversion to JSON Array print(json.dumps(['Welcome', "to", "javaTpoint"])) #Python tuple conversion to JSON Array print(json.dumps(("Welcome", "to", "javaTpoint"))) # Python string conversion to JSON String print(json.dumps("Hello")) # Python int conversion to JSON Number print(json.dumps(1234)) # Python float conversion to JSON Number print(json.dumps(23.572)) # Boolean conversion to their respective values print(json.dumps(True)) print(json.dumps(False)) # None value to null print(json.dumps(None))
["Welcome", "to", "javaTpoint"] ["Welcome", "to", "javaTpoint"] "Hello" 1234 23.572 true false null

Десериализация JSON

Десериализация – это процесс декодирования данных JSON в объекты Python. Модуль json предоставляет два метода load() и loads(), которые используются для преобразования данных JSON в фактическую объектную форму Python. Список приведен ниже:

Читайте также:  Range in c sharp
JSON Python
1. Object Dict
2. Array list
3. String str
4. Number (int) int
5. true True
6. false False
7. null None

В приведенной выше таблице показано обратное преобразование сериализованной таблицы, но технически это не идеальное преобразование данных JSON. Это означает, что если мы кодируем объект и снова декодируем его через некоторое время; мы не можем вернуть тот же объект.

Давайте возьмем реальный пример: один человек переводит что-то на китайский язык, а другой переводит обратно на английский, и это может быть неточно переведено. Рассмотрим простой пример:

import json a = (10,20,30,40,50,60,70) print(type(a)) b = json.dumps(a) print(type(json.loads(b)))

Функция load()

Функция load() используется для десериализации данных JSON в объект Python из файла. Рассмотрим следующий пример:

import json # Key:value mapping student = < "Name" : "Peter", "Roll_no" : "0090014", "Grade" : "A", "Age": 20, >with open("data.json","w") as write_file: json.dump(student,write_file) with open("data.json", "r") as read_file: b = json.load(read_file) print(b)

В приведенной выше программе мы закодировали объект Python в файле с помощью функции dump(). После этого мы читаем файл JSON с помощью функции load(), где в качестве аргумента мы передали read_file.

Модуль json также предоставляет функцию loads(), которая используется для преобразования данных JSON в объект Python. Она очень похожа на функцию load(). Рассмотрим следующий пример:

Import json a = ["Mathew","Peter",(10,32.9,80),] # Python object into JSON b = json.dumps(a) # JSON into Python Object c = json.loads(b) print(c)

Сравнение json.load() и json.loads()

Функция json.load() используется для загрузки файла JSON, тогда как функция json.loads() используется для загрузки строки.

Сравнение json.dump() и json.dumps()

Функция json.dump() используется, когда мы хотим сериализовать объекты Python в файл JSON, а функция json.dumps() используется для преобразования данных JSON в виде строки для анализа и печати.

Читайте также:  Request json file javascript

Python Pretty Print JSON

Иногда нам нужно проанализировать и отладить большой объем данных JSON. Это можно сделать, передав дополнительные аргументы indent и sort_keys в методы json.dumps() и json.dump().

Примечание: обе функции dump() и dumps() принимают аргументы indent и short_keys.

Рассмотрим следующий пример:

import json person = '' per_dict = json.loads(person) print(json.dumps(per_dict, indent = 5, sort_keys= True))

В приведенном выше коде мы предоставили 5 пробелов для аргумента отступа, а ключи отсортированы в порядке возрастания. Значение по умолчанию для отступа – Нет, а значение по умолчанию для sort_key – False.

Кодирование и декодирование

Кодирование – это метод преобразования текста или значений в зашифрованную форму. Зашифрованные данные может использовать только предпочтительный пользователь путем их декодирования. Кодирование также называется сериализацией, а декодирование также называется десериализацией. Кодирование и декодирование выполняются для формата JSON (объект). Python предоставляет популярный пакет для таких операций. Мы можем установить его в Windows с помощью следующей команды:

Кодирование – пакет demjson предоставляет функцию encode(), которая используется для преобразования объекта Python в строковое представление JSON. Синтаксис приведен ниже:

demjson.encode(self,obj,nest_level = 0)

1 – Кодирование с использованием пакета demjson:

import demjson a = [] print(demjson.encode(a))

2 – Декодирование. Модуль demjson предоставляет функцию decode(), которая используется для преобразования объекта JSON в тип формата Python. Синтаксис приведен ниже:

Import demjson a = "['Peter', 'Smith', 'Ricky', 'Hayden']" print(demjson.decode(a))

В этом руководстве мы узнали о Python JSON – наиболее эффективном способе передачи данных между клиентом и веб-сервером.

Источник

Оцените статью