Jak czytać i pisać pliki JSON w Python

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

O JSON

JSON (Notacja obiektu JavaScript) to format pliku i standard przechowywania danych, który wykorzystuje parę wartości kluczy do przechowywania i wymiany danych. Jest to najczęściej używany format wymiany danych, często widoczny 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 obejmuje biblioteki do parsowania i pisania danych JSON domyślnie, a JSON jest językiem programowym agnostycznym formatem danych. Wartości przechowywane w pliku JSON lub ładowność zwykle zawierają ciągi, liczby i serializowalne typy danych, takie jak listy (tablice).

Słowniki JSON i Python

Dane JSON w Pythonie są konwertowane na obiekt słownika za pomocą metody „ładuj”. Często widać, że niektóre osoby zrównują dane JSON i słownik Pythona, ponieważ składnia do zdefiniowania obu z nich jest prawie takie samo. Jednak dane JSON są niczym innym jak ciągem tekstowym ustrukturyzowanym w sztywnej składni, podczas gdy słownik Python jest obiektem struktury danych przechowywanych w pamięci. Jeśli chcesz przechowywać dane słownika w pliku tekstowym lub wysłać je do innego programu bez 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 przekształcenia słownika Pythona w łańcuch kompatybilny JSON nazywa się serializacją.

Czytanie i zrzucanie danych JSON w Python

Dane JSON można pobrać jako formularz odpowiedzi, odczytanie z pliku, pokrojone z parametrów zapytania URL i tak dalej. Ten artykuł skupi się głównie na odczytaniu danych JSON z lokalnie zapisanego pliku. Załóżmy, że „test.plik JSON ”zawiera następujące dane:

„Codename”: „Eoan Ermine”, „Wersja”: „Ubuntu 19.10 "

Aby przeczytać test.plik JSON W Python możesz użyć poniższego kodu:

Importuj JSON
z otwartym („test.JSON ") jako f:
Data = JSON.ładowanie (f)
zrzut = JSON.Zrzuty (dane)
Drukuj (dane)
print (typ (dane))
Drukuj (zrzut)
wydrukuj (typ (zrzut))

Pierwszy wiersz w powyższym module Importuj JSON. W następnym wierszu „z otwartym” służy do bezpiecznego odczytu zawartości pliku. W bloku „z otwartym”, „JSON.Metoda ładowania ”służy do odczytu i przechowywania zawartości pliku w zmiennej„ danych ”. Dane załadowane w poprzednim kroku są konwertowane z powrotem na ciąg JSON za pomocą „JSON.Metoda zrzutu ”. Uruchomienie powyższego kodu wyświetli następujące dane wyjściowe:

„Codename”: „eoan ermine”, „wersja”: „Ubuntu 19.10 '

„Codename”: „Eoan Ermine”, „Wersja”: „Ubuntu 19.10 "

Zwróć uwagę na powyższe wyniki, że „JSON.Metoda załadowania ”odczytuje surowe dane JSON do słownika Pythona, a„ JSON.Metody zrzutu ”przekształcają słownik w ciąg kompatybilny ze strukturą JSON. Po przekonwertowaniu obiektu JSON w obiekt słownika Python, możesz użyć wbudowanych metod słownika Pythona do obsługi danych. Powyższy przykład jest dość podstawowy i nie zawiera tablic w danych JSON lub wartości zagnieżdżonych. Jednak w Pythonie możesz obsłużyć te wartości, jak każde inne zagnieżdżone słowniki i listy.

Sortowanie i ładne drukowanie danych JSON

„JSON.Metoda zrzutu ”obsługuje niektóre opcjonalne parametry do sortowania klawiszy i ładnego drukowania danych wyjściowych w celu poprawy czytelności.

Importuj JSON
z otwartym („test.JSON ") jako f:
Data = JSON.ładowanie (f)
zrzut = JSON.zrzuty (dane, sort_keys = true, wskaźnik = 4)
Drukuj (zrzut)

Powyższy kod wyświetli następujące dane wyjściowe:


„Codename”: „Eoan Ermine”,
„Wersja”: „Ubuntu 19.10 "

Konwersje typu danych

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

JSON Pyton
strunowy str
numer int lub float
prawda fałsz Prawda fałsz
zero Nic
szyk lista
obiekt dykt

JSON.Moduł wiersza poleceń narzędzi

Python zawiera ładną linię poleceń „JSON.narzędzie ”, które można użyć do weryfikacji i ładnego drukowania ciągów i plików JSON.

$ echo '„CodeName”: „eoan ermine”, „wersja”: „Ubuntu 19.10 " '| Python3 -m Json.narzędzie

Uruchamianie powyższego polecenia pokaże następujące wyniki:


„Codename”: „Eoan Ermine”,
„Wersja”: „Ubuntu 19.10 "

Możesz także użyć JSON.narzędzie z plikami JSON. Wymień „in_file” i „out_file” w poniższym poleceniu na żądane wartości:

$ Python3 -m Json.narzędzie in_file out_file

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