JSON — это легкий формат данных для обмена данными, который может быть легко прочитан и записан людьми, легко проанализирован и сгенерирован машинами. Это полный текстовый формат, не зависящий от языка. Для работы с данными JSON в Python есть встроенный пакет под названием json.
Пример:
s = '{"id":01, "name": "Emily", "language": ["C++", "Python"]}'
Синтаксис JSON рассматривается как подмножество синтаксиса JavaScript, включая следующее:
- Name/Value pairs: Представляет данные, за именем которых следует ‘:'(двоеточие), а пары Имя/Значение разделяются запятой.
- Curly braces: Удерживает предметы.
- Square brackets: Храните массивы со значениями, разделенными (запятой).
Ключи/Имя должны быть строками с двойными кавычками, а значения должны быть типами данных среди следующих:
- String (Строка)
- Number (Номер)
- Object (JSON object) (Объект (объект JSON))
- array (массив)
- Boolean (Логический)
- Null (Нулевой)
Пример:
{
"employee": [
{
"id": "01",
"name": "Amit",
"department": "Sales"
},
{
"id": "04",
"name": "sunil",
"department": "HR"
}
]
}
Разбор JSON (преобразование из JSON в Python)
метод json.loads() может анализировать строку json, и результатом будет словарь Python.
Синтаксис:
json.loads(json_string)
Пример:
# Python program to convert JSON to Python
import json
# JSON string
employee ='{"id":"09", "name": "Nitin", "department":"Finance"}'
# Convert string to Python dict
employee_dict = json.loads(employee)
print(employee_dict)
print(employee_dict['name'])
Выход:
{'id': '09', 'department': 'Finance', 'name': 'Nitin'}
Nitin
Python прочитал файл JSON
метод json.load() может считывать файл, содержащий объект JSON. Рассмотрим файл с именем сотрудник .json, который содержит объект JSON.
Синтаксис:
json.load(file_object)
Пример: Давайте предположим, что JSON выглядит так.
Мы хотим прочитать содержимое этого файла. Ниже приведена реализация.
# Python program to read
# json file
import json
# Opening JSON file
f = open('data.json',)
# returns JSON object as
# a dictionary
data = json.load(f)
# Iterating through the json
# list
for i in data['emp_details']:
print(i)
# Closing file
f.close()
Выход:
Здесь мы использовали функцию open() для чтения файла JSON. Затем файл анализируется с помощью метода json.load (), который дает нам словарь с именем data.
Преобразование из Python в JSON
метод json.dumps() может преобразовать объект Python в строку JSON.
Синтаксис:
json.dumps(dict, indent)
Для этого требуется два параметра:
- dictionary – имя словаря, который должен быть преобразован в объект JSON.
- indent – определяет количество единиц для отступа
Пример:
# Python program to convert
# Python to JSON
import json
# Data to be written
dictionary ={
"id": "04",
"name": "sunil",
"department": "HR"
}
# Serializing json
json_object = json.dumps(dictionary, indent = 4)
print(json_object)
Выход:
{
"id": "04",
"name": "sunil",
"department": "HR"
}
Выход:
{ "depatment": "HR", "id": "04", "name": "sunil" }
Следующие типы объектов Python могут быть преобразованы в строки JSON:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Объекты Python и их эквивалентное преобразование в JSON:
Python | Эквивалент JSON |
---|---|
dict | объект |
list, tuple | массив |
str | строка |
int, float | номер |
True | истинный |
False | ложный |
None | нулевой |
Запись JSON в файл
метод json.dump() может быть использован для записи в файл JSON.
Синтаксис:
json.dump(dict, file_pointer)
Для этого требуется 2 параметра:
- dictionary – имя словаря, который должен быть преобразован в объект JSON.
- file pointer – указатель файла, открытого в режиме записи или добавления.
# Python program to write JSON
# to a file
import json
# Data to be written
dictionary ={
"name" : "sathiyajith",
"rollno" : 56,
"cgpa" : 8.6,
"phonenumber" : "9976770500"
}
with open("sample.json", "w") as outfile:
json.dump(dictionary, outfile)
Выход:
Вышеуказанная программа открывает файл с именем sample.json в режиме записи с помощью «w». Файл будет создан, если он не существует. Json.dump() преобразует словарь в строку JSON, и она будет сохранена в файле sample.json.