JSON в Python: работа с данными, парсинг и сериализация
JSON или JavaScript Object Notation - это формат обмена данными, основанный на языке JavaScript. Он используется для передачи данных между клиентом и сервером или между двумя системами. JSON-файлы содержат данные в нотации пары ключ-значение, где каждый ключ является строкой, а значение может быть строкой, числом, объектом или массивом.
В Python можно легко работать с JSON-данными, используя встроенный модуль json. Этот модуль позволяет разбирать (decode) JSON-данные в структуру Python или преобразовывать (encode) структуру Python в JSON-формат.
Пример кода для преобразования структуры Python в JSON:
python
import json
data = {
'name': 'John',
'age': 30,
'city': 'New York'
}
# преобразование данных в JSON
json_data = json.dumps(data)
print(json_data)
Результат будет выглядеть так:
json
{"name": "John", "age": 30, "city": "New York"}
Пример кода для разбора JSON-строки в структуру Python:
python
import json
json_data = '{"name": "John", "age": 30, "city": "New York"}'
# разбор JSON-строки
data = json.loads(json_data)
print(data)
Результат будет выглядеть так:
python
{'name': 'John', 'age': 30, 'city': 'New York'}
Модуль json также позволяет работать с более сложными структурами JSON, такими как массивы и вложенные объекты. Например:
python
import json
json_data = '''
{
"people": [
{
"name": "John",
"age": 30,
"city": "New York"
},
{
"name": "Jane",
"age": 25,
"city": "London"
}
]
}
'''
# разбор JSON-строки со сложными структурами
data = json.loads(json_data)
# получение данных из структуры
for person in data['people']:
print(person['name'], person['age'], person['city'])
Этот код разбирает JSON-строку, содержащую массив объектов, и выводит их свойства. Результат будет выглядеть так:
python
John 30 New York
Jane 25 London
Таким образом, модуль json является очень полезным для работы с данными в формате JSON в Python. Он позволяет легко преобразовывать данные из одного формата в другой и работать с более сложными структурами данных, что делает его необходимым инструментом для разработчиков веб-приложений и многих других областей.