← Назад ко всем вопросам

Как читать/писать JSON в Python? Чем json.dumps отличается от json.dump?

1️⃣ Как кратко ответить

Для работы с JSON в Python используется модуль json. Чтение JSON из файла выполняется с помощью json.load(), а запись в файл — с помощью json.dump(). json.dumps() преобразует Python-объект в строку JSON, тогда как json.dump() записывает Python-объект в файл в формате JSON.

2️⃣ Подробное объяснение темы

JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который легко читается и пишется человеком, а также легко парсится и генерируется машинами. В Python для работы с JSON используется встроенный модуль json.

Чтение JSON

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

Пример:

import json
​
# Открываем файл data.json в режиме чтения
with open('data.json', 'r') as file:
    # Загружаем содержимое файла в переменную data
    data = json.load(file)
​
# Теперь data содержит Python-объект, соответствующий JSON-данным
print(data)
  • open('data.json', 'r'): открывает файл data.json в режиме чтения.
  • json.load(file): читает JSON-данные из файла и преобразует их в Python-объект.

Запись JSON

Для записи Python-объекта в файл в формате JSON используется функция json.dump(). Она принимает Python-объект и объект файла, в который нужно записать данные.

Пример:

import json
​
# Python-объект, который мы хотим записать в файл
data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}
​
# Открываем файл data.json в режиме записи
with open('data.json', 'w') as file:
    # Записываем Python-объект в файл в формате JSON
    json.dump(data, file, indent=4)
  • open('data.json', 'w'): открывает файл data.json в режиме записи.
  • json.dump(data, file, indent=4): записывает Python-объект data в файл в формате JSON. Параметр indent=4 используется для форматирования JSON с отступами, чтобы он был более читаемым.

Преобразование в строку JSON

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

Пример:

import json
​
# Python-объект
data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}
​
# Преобразуем Python-объект в строку JSON
json_string = json.dumps(data, indent=4)
​
# Выводим строку JSON
print(json_string)
  • json.dumps(data, indent=4): преобразует Python-объект data в строку JSON. Параметр indent=4 добавляет отступы для улучшения читаемости.

Различия между json.dump() и json.dumps()

  • json.dump(): записывает Python-объект в файл в формате JSON.
  • json.dumps(): преобразует Python-объект в строку JSON.

Обе функции полезны для работы с JSON, но используются в разных контекстах: json.dump() — для записи в файл, а json.dumps() — для получения строки JSON.

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки