Pyton

Jak czytać i pisać pliki Json w Pythonie

Jak czytać i pisać pliki Json w Pythonie
W tym artykule wyjaśnimy, jak obsługiwać pliki i dane JSON w języku programowania Python. Python ma wbudowany moduł „json”, który sprawia, że ​​obsługa danych JSON jest łatwa i prosta.

O JSON

JSON (JavaScript Object Notation) to format plików i standard przechowywania danych, który wykorzystuje pary klucz-wartość do przechowywania i wymiany danych. Jest to najczęściej używany format wymiany danych, często spotykany w interfejsach API RESTful, lekkich bazach danych, plikach konfiguracyjnych i innym oprogramowaniu offline lub online, które musi przechowywać, pobierać i wymieniać dane. Większość języków programowania zawiera domyślnie biblioteki do analizowania i zapisywania danych JSON, a JSON jest formatem danych niezależnym od języka programowania. Wartości przechowywane w pliku JSON lub ładunku zwykle zawierają ciągi, liczby i możliwe do serializacji typy danych, takie jak listy (tablice).

Słowniki JSON i Python

Dane JSON w pythonie są konwertowane na obiekt słownika za pomocą metody „load”. Często widać, że niektórzy ludzie utożsamiają dane json ze słownikiem Pythona, ponieważ składnia ich definicji jest prawie taka sama. Jednak dane json to nic innego jak ciąg tekstowy o sztywnej składni, podczas gdy słownik Pythona jest obiektem struktury danych przechowywanym w pamięci. Jeśli chcesz przechowywać dane słownikowe w pliku tekstowym lub wysłać je do innego programu innego niż Python, musisz najpierw przekonwertować je na ciąg tekstowy (bajty). Ten zrzucony / przekonwertowany ciąg tekstowy jest zdefiniowany w standardowej składni JSON, a proces konwersji słownika Pythona na ciąg zgodny z json nazywa się serializacją.

Odczytywanie i zrzucanie danych JSON w Pythonie

Dane JSON mogą być pobierane jako odpowiedź z serwera, odczytywane z pliku, wycinane z parametrów zapytania URL i tak dalej. Ten artykuł skupi się głównie na odczytywaniu danych json z lokalnie przechowywanego pliku. Załóżmy, że „test”.plik json” zawiera następujące dane:

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

Aby przeczytać test.plik json w pythonie, możesz użyć poniższego kodu:

importuj json
z otwartym ("test.json") jako f:
dane = json.obciążenie (f)
zrzut = json.zrzuty(dane)
drukuj (dane)
drukuj (rodzaj(dane))
drukuj (zrzut)
drukuj (typ(zrzut))

Pierwsza linia w powyższym kodzie importuje moduł json. W następnym wierszu „z otwartym” służy do bezpiecznego odczytu zawartości pliku. W bloku „z otwartymi” „json.load” służy do odczytywania i przechowywania zawartości pliku w zmiennej „data”. Dane załadowane w poprzednim kroku są konwertowane z powrotem na ciąg json za pomocą „json.zrzucić”. Uruchomienie powyższego kodu spowoduje wyświetlenie następujących danych wyjściowych:

'kryptonim': 'Eoan Ermine', 'wersja': 'Ubuntu 19.10'

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

Zwróć uwagę na powyższe dane wyjściowe, że „json.load” odczytuje surowe dane json do słownika Pythona, podczas gdy „json.dumps” konwertuje słownik na ciąg znaków zgodny ze strukturą JSON. Po przekonwertowaniu obiektu JSON na obiekt słownika Pythona możesz użyć wbudowanych metod słownika Pythona do obsługi danych. Powyższy przykład jest dość prosty i nie zawiera tablic w danych JSON ani wartości zagnieżdżonych. Jednak w pythonie możesz obsługiwać te wartości jak inne zagnieżdżone słowniki i listy.

Sortowanie i ładne drukowanie danych JSON

„json.dump” obsługuje kilka opcjonalnych parametrów do sortowania kluczy i ładnego drukowania danych wyjściowych dla lepszej czytelności.

importuj json
z otwartym ("test.json") jako f:
dane = json.obciążenie (f)
zrzut = json.zrzuty(dane, sort_keys=True, wcięcie=4)
drukuj (zrzut)

Powyższy kod pokaże następujące dane wyjściowe:


"kryptonim": "Eoan Gronostaj",
"wersja": "Ubuntu 19.10"

Konwersje typu danych

Poniższa lista ilustruje, w jaki sposób wartości JSON są konwertowane na obiekty Pythona i na odwrót.

JSON Pyton
strunowy str
numer int lub pływak
prawda fałsz Prawda fałsz
zero Żaden
szyk lista
obiekt dyktować

Json.moduł wiersza poleceń narzędzia

Python zawiera ładne narzędzie wiersza poleceń „json.narzędzie”, które może być używane do sprawdzania poprawności i ładnego drukowania ciągów i plików JSON.

$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10"' | python3 -m json.narzędzie

Uruchomienie powyższego polecenia spowoduje wyświetlenie następujących danych wyjściowych:


"kryptonim": "Eoan Gronostaj",
"wersja": "Ubuntu 19.10"

Możesz także użyć json.narzędzie z plikami JSON. Zastąp „in_file” i „out_file” w poniższym poleceniu żądanymi wartościami:

$ python3 -m json.narzędzie in_file out_file

Poza ładnym drukowaniem, sortowaniem i weryfikowaniem danych JSON, json.narzędzie nie robi nic więcej. Więc jeśli chcesz manipulować jakimikolwiek danymi JSON, musisz napisać własny niestandardowy kod za pomocą wbudowanego modułu JSON.

Gry How to Install and Play Doom on Linux
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Gry Vulkan for Linux Users
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...