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 JSONPierwszy 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 '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 JSONPowyższy kod wyświetli następujące dane wyjściowe:
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ędzieUruchamianie powyższego polecenia pokaże następujące wyniki:
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_filePoza ł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.