Друкарня від WE.UA

Всіх вітаю! Сьогодні предметом вивчення буде те що таке JSON-формат та як можна конвертувати Python-код у JSON і навпаки.

Що таке JSON?

JSON — це спеціальний текстовий формат, призначений для обміну даними між серверами та клієнтами, тобто різними застосунками, сайтами тощо.

Даний формат організовує дані у вигляді “ключ-значення” подібно до словників у тому ж Python, але важливою відмінністю є те, що JSON є саме текстовим форматом, а не словником. Тобто навіть на вигляд JSON-формат дуже нагадує словники.

Робота з даними

Конвертуємо Python-код у JSON

Для конвертації Python-коду у JSON використовується функція dumps(), якій достатньо передати наш словник у вигляді параметра, і після цього ми отримаємо готові дані у форматі JSON.

Отже, імпортуємо модуль json:

import json

Створюємо словник:

info = {
    "First name": "Robert",
    "Last name": "Landsman",
    "Age": "32",
    "Country": "England",
    "Job": "ML Engineer",
    "Experience": "5+ years",
    "Hobbies": ["Hiking", "Painting", "Cooking"]
}

Тепер застосовуємо вищезгадану функцію та виводимо результат у консоль:

convert_to_json = json.dumps(info)
print(convert_to_json)

Результат:

{"First name": "Robert", "Last name": "Landsman", "Age": "32", "Country": "England", "Job": "ML Engineer", "Experience": "5+ years", "Hobbies": ["Hiking", "Painting", "Cooking"]}

Ось ми і отримали наші дані у форматі JSON. Можливо, ви не помітите відмінностей і подумаєте, що нічого не змінилося, але насправді це не так.

Якщо ми просто виведемо словник info до та після конвертації можна побачити, що після конвертації у результаті застосовуються подвійні лапки, а не одинарні. Це має значення, бо JSON використовує лише подвійні лапки.

Ось приклад:

print("До конвертації: ", info)
print("----")
print("Після конвертації: ", convert_to_json)
До конвертації:  {'First name': 'Robert', 'Last name': 'Landsman', 'Age': '32', 'Country': 'England', 'Job': 'ML Engineer', 'Experience': '5+ years', 'Hobbies': ['Hiking', 'Painting', 'Cooking']}
----
Після конвертації:  {"First name": "Robert", "Last name": "Landsman", "Age": "32", "Country": "England", "Job": "ML Engineer", "Experience": "5+ years", "Hobbies": ["Hiking", "Painting", "Cooking"]}

Також можна перевірити тип даних словника до та після конвертації:

print("До конвертації: ", type(info))
print("----")
print("Після конвертації: ", type(convert_to_json))
До конвертації:  <class 'dict'>
----
Після конвертації:  <class 'str'>

Тут можна помітити, що після конвертації ми отримали вже не словник, а простий рядок. Це також має сенс, бо, як ми вже говорили, JSON — це текстовий формат.

Також варто знати, що у JSON можна конвертувати усі типи даних, крім множин (sets). Як приклад, спробуємо замінити значення ключа “Hobbies” зі списку на множину.

Ось приклад:

import json

info = {
    "First name": "Robert",
    "Last name": "Landsman",
    "Age": "32",
    "Country": "England",
    "Job": "ML Engineer",
    "Experience": "5+ years",
    "Hobbies": {"Hiking", "Painting", "Cooking"}
}

convert_to_json = json.dumps(info)
print("До конвертації: ", convert_to_json)

А ось помилка, яку ми отримали:

TypeError: Object of type set is not JSON serializable

Конвертуємо JSON у Python-код

Тепер спробуємо конвертувати JSON-дані у звичайний Python-код. Для цього використовується функція loads(). Цій функції також достатньо просто передати JSON-дані, щоб перетворити їх знову в словник.

Візьмемо дані з попереднього коду та конвертуємо їх назад у Python-код. У нас вже є змінна convert_to_json, яка містить конвертовані JSON-дані, а тепер варто створити змінну convert_to_python, яка міститиме дані, конвертовані у Python-код.

Ось приклад:

import json

info = {
    "First name": "Robert",
    "Last name": "Landsman",
    "Age": "32",
    "Country": "England",
    "Job": "ML Engineer",
    "Experience": "5+ years",
    "Hobbies": ["Hiking", "Painting", "Cooking"]
}

convert_to_json = json.dumps(info)
convert_to_python = json.loads(convert_to_json)

print("До конвертації: ", convert_to_json)
print("Після конвертації: ", convert_to_python)
До конвертації:  {"First name": "Robert", "Last name": "Landsman", "Age": "32", "Country": "England", "Job": "ML Engineer", "Experience": "5+ years", "Hobbies": ["Hiking", "Painting", "Cooking"]}
Після конвертації:  {'First name': 'Robert', 'Last name': 'Landsman', 'Age': '32', 'Country': 'England', 'Job': 'ML Engineer', 'Experience': '5+ years', 'Hobbies': ['Hiking', 'Painting', 'Cooking']}

Як бачимо, при зворотній конвертації одинарні лапки замінили подвійні, бо тепер це не JSON-дані.

Також піддалися зміні й типи даних, бо тепер ми знову отримали словник:

import json

info = {
    "First name": "Robert",
    "Last name": "Landsman",
    "Age": "32",
    "Country": "England",
    "Job": "ML Engineer",
    "Experience": "5+ years",
    "Hobbies": ["Hiking", "Painting", "Cooking"]
}

convert_to_json = json.dumps(info)
convert_to_python = json.loads(convert_to_json)

print("До конвертації: ", type(convert_to_json))
print("Після конвертації: ", type(convert_to_python))
До конвертації:  <class 'str'>
Після конвертації:  <class 'dict'>

Висновок

У цій статті ми дізналися, що таке JSON, його призначення та навчилися працювати з цим форматом даних. Дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader

Нічний читач

67Довгочити
1.4KПерегляди
21Підписники
Підтримати
На Друкарні з 14 липня 2025

Більше від автора

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: