Jak czytać i pisać pliki Json w Pythonie

How Read Write Json Files Python



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 pliku 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 RESTful API, 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 to format danych niezależny 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 przy użyciu metody ładowania. 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. W tym artykule skupimy się głównie na odczytywaniu danych json z lokalnie przechowywanego pliku. Załóżmy, że plik test.json zawiera następujące dane:



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

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





importjson

z otwarty („test.json”) jakF:
dane=json.Załaduj(F)

wysypisko=json.depresja(dane)

wydrukować (dane)
wydrukować (rodzaj(dane))
wydrukować (wysypisko)
wydrukować (rodzaj(wysypisko))

Pierwsza linia w powyższym kodzie importuje moduł json. W kolejnym wierszu polecenie open służy do bezpiecznego odczytu zawartości pliku. W bloku with open metoda 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 przy użyciu metody json.dump. Uruchomienie powyższego kodu spowoduje wyświetlenie następujących danych wyjściowych:

{'kryptonim':„Eoan Gronostaj”, 'wersja':„Ubuntu 19.10”}
<klasa „dykt”>
{'kryptonim':„Eoan Gronostaj”, 'wersja':„Ubuntu 19.10”}
<klasa „str”>

Zwróć uwagę na powyższe dane wyjściowe, że metoda json.load odczytuje surowe dane json do słownika Pythona, podczas gdy metody json.dumps konwertują słownik na ciąg znaków zgodny ze strukturą JSON. Po przekonwertowaniu obiektu JSON na obiekt słownika Pythona do obsługi danych można użyć wbudowanych metod słownika Pythona. 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

Metoda json.dump obsługuje niektóre opcjonalne parametry do sortowania kluczy i ładnego drukowania danych wyjściowych w celu poprawy czytelności.

importjson

z otwarty („test.json”) jakF:
dane=json.Załaduj(F)

wysypisko=json.depresja(dane,sort_keys=Prawdziwe,akapit=4)
wydrukować (wysypisko)

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

{
'kryptonim': 'Eoan Ermine',
„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 P
numer int lub pływak
prawda fałsz Prawda fałsz
zero Nic
szyk lista
obiekt dyktować

Moduł wiersza poleceń Json.tool

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

$ echo'{'kryptonim': 'Eoan Ermine', 'wersja': 'Ubuntu 19.10'}'| python3 -m json.narzędzie

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

{
'kryptonim': 'Eoan Ermine',
„wersja”: „Ubuntu 19.10”
}

Możesz również użyć json.tool z plikami JSON. Zastąp in_file i out_file w poniższym poleceniu żądanymi wartościami:

$ python3 -m json.narzędzieplik_w_plik_wyj

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