logo

json.dumps() w Pythonie

JSON to akronim oznaczający notację obiektu JavaScript. Pomimo swojej nazwy, JSON jest formatem niezależnym od języka, najczęściej używanym do przesyłania danych między systemami, a czasami do ich przechowywania. Programy napisane w Pythonie, a także w wielu innych językach programowania, mogą przyjmować dane w formacie JSON i serializować dane w pamięci do formatu JSON. Pyton obsługuje JSON poprzez wbudowany pakiet o nazwie json. Aby skorzystać z tej funkcji, zaimportuj pakiet json do skryptu lub modułu Pythona, w którym chcesz serializować lub deserializować swoje dane. JSON wykorzystuje pary klucz-wartość rozdzielane przecinkami zawarte w podwójnych cudzysłowach i oddzielone dwukropkami. Treść pliku JSON można rozdzielić nawiasami klamrowymi { } lub nawiasami kwadratowymi [] (w niektórych językach nazywanymi również nawiasami). Format JSON wydaje się być podobny do słownika w języku Python, ale specyfika formatu JSON różni się znacząco, dlatego należy zachować ostrożność podczas pracy z obydwoma formatami.

Notatka: Aby uzyskać więcej informacji, zobacz Przeczytaj, Pisz i analizuj JSON przy użyciu języka Python



Json.dumps()

Funkcja json.dumps() przekonwertuje podzbiór obiektów Pythona na ciąg json. Nie wszystkie obiekty można konwertować i może być konieczne utworzenie słownika danych, które chcesz udostępnić przed serializacją do formatu JSON.

Składnia:
json.dumps(obj, *, skipkeys=False, zapewnienia_ascii=True, check_circular=True, zezwolenie_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
Parametry:
obiekt: Serializuj obiekt jako strumień w formacie JSON
pomiń klawisze: Jeśli skipkeys ma wartość True (domyślnie: False), wówczas klucze dyktujące, które nie są typu podstawowego (str, int, float, bool, None) zostaną pominięte zamiast zgłaszać błąd TypeError.
zapewnienia_ascii: Jeśli Sure_ascii ma wartość True (domyślnie), na wyjściu gwarantuje się, że wszystkie przychodzące znaki inne niż ASCII będą miały wartość ucieczki. Jeśli Sure_ascii ma wartość False, znaki te zostaną wyświetlone w niezmienionej postaci.
sprawdź_okrągły: Jeśli check_circular ma wartość False (domyślnie: True), wówczas cykliczne sprawdzanie odwołań dla typów kontenerów zostanie pominięte, a odwołanie cykliczne spowoduje błąd OverflowError (lub gorszy).
Pozwolić: Jeśli zezwolenie_nan ma wartość False (domyślnie: True), wówczas wystąpi błąd ValueError polegający na serializacji wartości zmiennoprzecinkowych spoza zakresu (nan, inf, -inf) w ścisłej zgodności ze specyfikacją JSON. Jeśli zezwolenie_nan ma wartość True, użyte zostaną ich odpowiedniki w JavaScript (NaN, Infinity, -Infinity).
akapit: Jeśli wcięcie jest nieujemną liczbą całkowitą lub ciągiem znaków, wówczas elementy tablicy JSON i elementy obiektów zostaną ładnie wydrukowane z tym poziomem wcięcia. Poziom wcięcia 0, ujemny lub spowoduje wstawienie tylko znaków nowej linii. Brak (wartość domyślna) powoduje wybranie najbardziej zwartej reprezentacji. Użycie dodatniej liczby całkowitej powoduje wcięcie o tyle spacji na poziom. Jeśli wcięcie jest ciągiem znaków (np. ), ten ciąg służy do wcięcia każdego poziomu.
separatory: Jeśli określono, separatorami powinna być krotka (separator_elementu, separator_klucza). Wartość domyślna to (‚, „, „:”), jeśli wcięcie ma wartość Brak, oraz („, „, „:”) w przeciwnym razie. Aby uzyskać najbardziej zwartą reprezentację JSON, należy określić („, „, „:”), aby wyeliminować białe znaki.
domyślny: Jeśli określono, wartość domyślna powinna być funkcją wywoływaną dla obiektów, których w innym przypadku nie można serializować. Powinien zwrócić wersję obiektu kodowaną w formacie JSON lub zgłosić błąd TypeError. Jeśli nie zostanie określony, zostanie zgłoszony TypeError.
sort_keys: Jeśli sort_keys ma wartość True (domyślnie: False), wówczas dane wyjściowe słowników zostaną posortowane według klucza.

Przykład 1: Przekazanie słownika Pythona do funkcji json.dumps() zwróci ciąg znaków.



Python3




wydrukuj z Javy



import> json> # Creating a dictionary> Dictionary>=>{>1>:>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>}> > # Converts input dictionary into> # string and stores it in json_string> json_string>=> json.dumps(Dictionary)> print>(>'Equivalent json string of input dictionary:'>,> >json_string)> print>(>' '>)> # Checking type of object> # returned by json.dumps> print>(>type>(json_string))>

>

>

Wyjście

Odpowiednik ciągu json w słowniku: {1: Welcome, 2: to, 3: Geeks, 4: for, 5: Geeks}

Przykład nr 2: Ustawiając klucze pomijania na True (domyślnie: False) automatycznie pomijamy klucze, które nie są typu podstawowego.

Python3




import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>}> # Our dictionary contains tuple> # as key, so it is automatically> # skipped If we have not set> # skipkeys = True then the code> # throws the error> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Wyjście

Odpowiednik ciągu json w słowniku: {2: to, 3: Geeks, 4: for, 5: Geeks}

Przykład nr 3:

Python3




import> json> # We are adding nan values> # (out of range float values)> # in dictionary> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # If we hadn't set allow_nan to> # true we would have got> # ValueError: Out of range float> # values are not JSON compliant> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Wyjście :

Równoważny ciąg json słownika: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}

Przykład nr 4:

Python3




import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # Indentation can be used> # for pretty-printing> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>,> >indent>=> 6>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Wyjście:

Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>

Przykład nr 5:

Python3




import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # If specified, separators should be> # an (item_separator, key_separator)tuple> # Items are separated by '.' and key,> # values are separated by '='> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>,> >indent>=> 6>,> >separators>=>(>'. '>,>' = '>))> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

ciąg do tablicy Java
>

>

Wyjście:

Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>

Przykład nr 6:

Python3




import> json> Dictionary>=>{>'c'>:>'Welcome'>,>'b'>:>'to'>,> >'a'>:>'Geeks'>}> json_string>=> json.dumps(Dictionary,> >indent>=> 6>,> >separators>=>(>'. '>,>' = '>),> >sort_keys>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Wyjście:

Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>