- Как преобразовать строку в JSON в Python
- Пример преобразования строки в JSON
- Зачем нужно конвертировать строку в формат json?
- Преобразование данных из JSON в объекты Python
- Разница между json.load() и json.loads()
- Работа с модулем JSON в Python
- Работа с Python JSON
- Сериализация JSON
- Функция dump()
- Функция dumps()
- Десериализация JSON
- Функция load()
- Сравнение json.load() и json.loads()
- Сравнение json.dump() и json.dumps()
- Python Pretty Print JSON
- Кодирование и декодирование
- Python – Difference Between json.load() and json.loads()
- json.load()
- Python3
- Python3
- json.loads()
Как преобразовать строку в JSON в Python
Чтобы преобразовать строку в json в Python, вы можете использовать функцию json.loads(). Эта функция принимает допустимую строку JSON и возвращает словарь, который можно использовать для доступа ко всем элементам.
Пример преобразования строки в JSON
В этом примере мы сначала преобразуем строку json в объект словаря Python с помощью метода json.loads(), а затем преобразуем словарь в строку с помощью метода json.dumps().
Зачем нужно конвертировать строку в формат json?
Преобразование строки в объект JSON в Python позволяет легко изменять данные, хранящиеся в строке.
JSON (нотация объектов JavaScript) — это популярный формат данных, используемый для структурированного хранения данных. Преобразовав строку в объект JSON, вы можете получить доступ и изменить данные в объекте, а также использовать объект в любых процессах или функциях, связанных с JSON.
Преобразование данных из JSON в объекты Python
- object => dict
- array => list
- string => str
- number (int) => int
- number (real) => float
- true => True
- false => False
- null => None
Разница между json.load() и json.loads()
Основное различие между функциями json.load() и json.loads() заключается в том, что функция json.load() считывает документ JSON из файла, а функция json.loads() преобразует документ JSON String в словарь.
Работа с модулем 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.
Объекты 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. Список приведен ниже:
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 в виде строки для анализа и печати.
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 – наиболее эффективном способе передачи данных между клиентом и веб-сервером.
Python – Difference Between json.load() and json.loads()
JSON (JavaScript Object Notation) is a script (executable) file which is made of text in a programming language, is used to store and transfer the data. It is a language-independent format and is very easy to understand since it is self-describing in nature. Python has a built-in package called json. In this article, we are going to see Json.load and json.loads() methods. Both methods are used for reading and writing from the Unicode string with file.
json.load()
json.load() takes a file object and returns the json object. It is used to read JSON encoded data from a file and convert it into a Python dictionary and deserialize a file itself i.e. it accepts a file object.
Syntax: json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
Parameters:
fp: File pointer to read text.
object_hook: It is an optional parameter that will be called with the result of any object literal decoded.
parse_float: It is an optional parameter that will be called with the string of every JSON float to be decoded.
parse_int: It is an optional parameter that will be called with the string of every JSON int to be decoded.
object_pairs_hook: It is an optional parameter that will be called with the result of any object literal decoded with an ordered list of pairs.
First creating the json file:
Python3
After, creating json file, let’s use json.load():
Python3
json.loads()
json.loads() method can be used to parse a valid JSON string and convert it into a Python Dictionary. It is mainly used for deserializing native string, byte, or byte array which consists of JSON data into Python Dictionary.
Syntax: json.loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
Parameters:
s: Deserialize str (s) instance containing a JSON document to a Python object using this conversion table.
object_hook: It is an optional parameter that will be called with the result of any object literal decoded.
parse_float: It is an optional parameter that will be called with the string of every JSON float to be decoded.
parse_int: It is an optional parameter that will be called with the string of every JSON int to be decoded.
object_pairs_hook: It is an optional parameter that will be called with the result of any object literal decoded with an ordered list of pairs.