JSON – зручний текстовий формат обміну даними, візуально схожий на словники в python. В цій нотатці буде розглянуто приклади роботи з JSON форматом в python, за допомогою вбудованого модуля з однойменною назвою json.

Запис об’єкту python у файл json

Для запису об’єкту python у файл з форматом json використовується метод json.dump:

import json


def dump_data_to_file():
    data = {'firstName': 'Isabel', 'lastName': 'Crosby', 'age': 36}
    with open('customer.json', 'w') as file_json:
        json.dump(data, file_json, indent=4)

  • імпортовано модуль json
  • створено python словник data
  • відкрито файл customer.json на запис
  • запис python словника data у файл
  • іменований параметр indent визначає рівень відступів запису у файлі, для покращеного сприйняття

Якщо переглянути, що перебуває у файлі customer.json:

Зчитування файлу json в об’єкт python

Для зчитування файлу json в об’єкт python використовується метод json.load. Спробуємо зчитати customer.json з минулого прикладу:

import json


def load_data_from_file():
    with open('customer.json') as file_json:
        data = json.load(file_json)
        print(type(data))
        print(data)

Результат виконання методу:

<class 'dict'>
{'firstName': 'Isabel', 'lastName': 'Crosby', 'age': 36}

  • відкрито файл customer.json на зчитування даних
  • результат завантаження привласнюємо змінній data
  • виводимо тип змінної data, як можна побачити це звичайний python словник
  • виводимо вміст словника data

Зберігання об’єкту python у строку формату JSON

Коли немає потреби записувати об’єкт у файл, натомість є необхідність зберегти його у строку формату JSON, використовується метод json.dumps:

import json


def dumps_object_to_string():
    data = {'firstName': 'Isabel', 'lastName': 'Crosby', 'age': 36}
    json_string = json.dumps(data)
    print(type(json_string))
    print(json_string)

Результат виконання методу, де словник python кодується в строку:

<class 'str'>
{"firstName": "Isabel", "lastName": "Crosby", "age": 36}

Як можна побачити json_string є об’єктом str та має формат JSON.

Зчитування строки у форматі JSON в об’єкт python

Для декодування строки у форматі JSON в об’єкт python використовується метод json.loads:

import json


def loads_string_to_object():
    json_string = """{"firstName": "Isabel", "lastName": "Crosby", "age": 36}"""
    print(type(json_string))
    data = json.loads(json_string)
    print(type(data))
    print(data)

Результат виконання методу:

<class 'str'>
<class 'dict'>
{'firstName': 'Isabel', 'lastName': 'Crosby', 'age': 36}

Рядок json_string було декодовано у python словник (data).


Мітки: