Python

Как да четем и пишем Json файлове в Python

Как да четем и пишем Json файлове в Python
Тази статия ще обясни как да боравите с JSON файлове и данни на езика за програмиране Python. Python се предлага с вграден “json” модул, който прави обработката на JSON данни лесна и ясна.

Относно JSON

JSON (JavaScript Object Notation) е файлов формат и стандарт за съхранение на данни, който използва двойки ключ-стойност за съхраняване и обмен на данни. Това е най-широко използваният формат за обмен на данни, често срещан в RESTful API, леки бази данни, конфигурационни файлове и друг офлайн или онлайн софтуер, който трябва да съхранява, извлича и обменя данни. Повечето езици за програмиране включват библиотеки за синтактичен анализ и запис на JSON данни по подразбиране, а JSON е формат за агностични данни на програмен език. Стойностите, съхранявани в JSON файл или полезен товар, обикновено съдържат низове, числа и сериализуеми типове данни като списъци (масиви).

Речници на JSON и Python

JSON данните в python се преобразуват в обект на речника с помощта на метода “load”. Често се вижда, че някои хора приравняват json данни и речник на python, тъй като синтаксисът за дефиниране на двамата е почти еднакъв. Данните json обаче не са нищо друго освен текстов низ, структуриран в твърд синтаксис, докато речникът на python е обект на структура от данни, съхраняван в паметта. Ако искате да съхраните данните от речника в текстов файл или да ги изпратите на друга програма, която не е на python, първо ще трябва да ги преобразувате в текстов низ (байтове). Този изхвърлен / преобразуван текстов низ е дефиниран в стандартния синтаксис на JSON и процесът на преобразуване на речник на python в json съвместим низ се нарича сериализация.

Четене и изхвърляне на JSON данни в Python

JSON данните могат да се извличат като отговор от сървър, да се четат от файл, да се нарязват от параметрите на URL заявката и т.н. Тази статия ще се фокусира основно върху четенето на json данни от локално съхраняван файл. Нека приемем, че „тест.json ”съдържа следните данни:

"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "

За да прочетете теста.json файл в python, можете да използвате кода по-долу:

импортиране json
с отворен ("тест.json ") като f:
данни = json.натоварване (f)
dump = json.сметища (данни)
печат (данни)
печат (тип (данни))
печат (изхвърляне)
печат (тип (дъмп))

Първият ред в горния код импортира json модул. В следващия ред „с отворен“ се използва за безопасно четене на съдържанието на файла. В рамките на „с отворен“ блок „json.load ”методът се използва за четене и съхраняване на съдържанието на файла в променливата„ 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.dump ”метод поддържа някои незадължителни параметри за сортиране на ключове и красив печат на изхода за подобрена четливост.

импортиране json
с отворен ("тест.json ") като f:
данни = json.натоварване (f)
dump = json.сметища (данни, сортиране на клавиши = вярно, отстъп = 4)
печат (изхвърляне)

Кодът по-горе ще покаже следния изход:


"codename": "Eoan Ermine",
"версия": "Ubuntu 19.10 "

Преобразувания на типа данни

Списъкът по-долу илюстрира как JSON стойностите се преобразуват в python обекти и обратно.

JSON Python
низ ул
номер int или float
вярно невярно Вярно невярно
нула Нито един
масив списък
обект дикт

Json.инструмент Модул за команден ред

Python включва хубава помощна програма за команден ред „json.инструмент ”, който може да се използва за валидиране и красив печат на JSON низове и файлове.

$ echo '"кодово име": "Eoan Ermine", "версия": "Ubuntu 19.10 " '| python3 -m json.инструмент

Изпълнението на командата по-горе ще ви покаже следния изход:


"codename": "Eoan Ermine",
"версия": "Ubuntu 19.10 "

Можете също да използвате json.инструмент с JSON файлове. Заменете “in_file” и “out_file” в командата по-долу с желаните от вас стойности:

$ python3 -m json.инструмент in_file out_file

Освен красив печат, сортиране и валидиране на JSON данни, json.инструмент не прави нищо друго. Така че, ако искате да манипулирате някакви JSON данни, трябва да напишете свой собствен потребителски код с помощта на вградения JSON модул.

Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...
Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...