Про JSON
JSON (JavaScript Object Notation) - це формат файлу та стандарт зберігання даних, який використовує пари ключ-значення для зберігання та обміну даними. Це найбільш широко використовуваний формат обміну даними, який часто зустрічається в RESTful API, легких базах даних, конфігураційних файлах та іншому програмному забезпеченні для офлайн- та онлайн-обробки, що потребує зберігання, отримання та обміну даними. Більшість мов програмування включають бібліотеки для аналізу та запису даних JSON за замовчуванням, а JSON - формат агностичних даних мови програмування. Значення, що зберігаються у файлі JSON або корисному навантаженні, зазвичай містять рядки, числа та серіалізуються типи даних, такі як списки (масиви).
Словники JSON та Python
Дані JSON у python перетворюються у об’єкт словника за допомогою методу “load”. Часто можна побачити, що деякі люди прирівнюють дані json та словник python, оскільки синтаксис їх обох майже однаковий. Однак дані json - це не що інше, як текстовий рядок, структурований у жорсткому синтаксисі, тоді як словник python - це об'єкт структури даних, що зберігається в пам'яті. Якщо ви хочете зберегти дані словника у текстовому файлі або надіслати їх іншій програмі, яка не є пітоном, вам доведеться спочатку перетворити їх у текстовий рядок (байти). Цей дамп / перетворений текстовий рядок визначено у стандартному синтаксисі JSON, а процес перетворення словника python у рядок, сумісний із json, називається серіалізацією.
Читання та скидання даних JSON у Python
Дані JSON можна отримати як відповідь із сервера, прочитати з файлу, нарізати з параметрів запиту URL-адреси тощо. Ця стаття в основному буде зосереджена на читанні даних JSON з локально збереженого файлу. Припустимо, що “тест.json ”містить такі дані:
"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "Щоб прочитати тест.json у python, ви можете використовувати код нижче:
імпорт JSONз відкритим ("тест.json ") як f:
дані = json.навантаження (f)
дамп = json.звалища (дані)
друк (дані)
друк (тип (дані))
друк (дамп)
друк (тип (дамп))
Перший рядок у наведеному вище коді імпортує модуль json. У наступному рядку для відкриття вмісту файлу використовується “with open”. У блоці “with open” “json.метод завантаження ”використовується для читання та зберігання вмісту файлу у змінній“ data ”. Дані, завантажені на попередньому кроці, перетворюються назад у рядок json за допомогою “json.дамп ”метод. Запуск коду вище покаже наступний результат:
'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "
Зверніть увагу на вихідні дані, що “json.load ”зчитує необроблені дані json у словнику python, тоді як“ json.дампів ”перетворює словник у рядок, сумісний зі структурою JSON. Після того, як об’єкт JSON було перетворено в об’єкт словника python, ви можете використовувати вбудовані методи словника python для обробки даних. Наведений вище приклад досить базовий і не включає масиви в даних JSON або вкладені значення. Однак у python ви можете обробляти ці значення, як і будь-які інші вкладені словники та списки.
Сортування та симпатичний друк даних JSON
Значок “json.метод дампа ”підтримує деякі необов’язкові параметри для сортування ключів і гарненький друк вихідних даних для поліпшення читабельності.
імпорт JSONз відкритим ("тест.json ") як f:
дані = json.навантаження (f)
дамп = json.дампи (data, sort_keys = True, відступ = 4)
друк (дамп)
У наведеному вище коді буде показано такий результат:
"codename": "Eoan Горностай",
"version": "Ubuntu 19.10 "
Перетворення типів даних
Список нижче ілюструє, як значення JSON перетворюються на об'єкти python і навпаки.
JSON | Python |
рядок | вул |
номер | int або float |
правда, брехня | Правда, Неправда |
нуль | Жоден |
масив | список |
об'єкт | дикт |
Джсон.інструмент Модуль командного рядка
Python включає приємну утиліту командного рядка “json.інструмент », який можна використовувати для перевірки та симпатичного друку рядків та файлів JSON.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.інструментЗапуск команди вище покаже вам наступний результат:
"codename": "Eoan Горностай",
"version": "Ubuntu 19.10 "
Ви також можете використовувати json.інструмент з файлами JSON. Замініть “in_file” та “out_file” у команді нижче на бажані значення:
$ python3 -m json.інструмент in_file out_fileКрім гарного друку, сортування та перевірки даних JSON, json.інструмент більше нічого не робить. Отже, якщо ви хочете маніпулювати будь-якими даними JSON, вам доведеться написати власний власний код за допомогою вбудованого модуля JSON.