JSON este un acronim care înseamnă JavaScript Object Notation. În ciuda numelui său, JSON este un format agnostic de limbă care este cel mai frecvent utilizat pentru a transmite date între sisteme și, uneori, pentru a stoca date. Programele scrise în Python, precum și multe alte limbaje de programare, pot ingera date formatate JSON și pot serializa datele din memorie în format JSON. Piton acceptă JSON printr-un pachet încorporat numit json. Pentru a utiliza această caracteristică, importați pachetul json în scriptul sau modulul Python în care doriți să serializați sau să deserializați datele. JSON utilizează perechi de valori cheie delimitate prin virgulă, cuprinse între ghilimele duble și separate prin două puncte. Corpul unui fișier JSON poate fi delimitat în acolade { } sau acolade pătrate [] (cunoscute și ca paranteze în unele localități). Formatul JSON pare să fie similar cu dicționarul din Python, dar particularitățile formatului JSON au diferențe semnificative, așa că aveți grijă când lucrați cu ambele formate.
Notă: Pentru mai multe informații, consultați Citiți, Scrieți și analizați JSON folosind Python
Json.dumps()
Funcția json.dumps() va converti un subset de obiecte Python într-un șir json. Nu toate obiectele sunt convertibile și poate fi necesar să creați un dicționar de date pe care doriți să le expuneți înainte de a le serializa în JSON.
Sintaxă:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=Niciunul, separators=None, default=None, sort_keys=False, **kw)
Parametri:
obj: Serializați obj ca flux formatat JSON
sari peste tastele: Dacă skipkeys este True (implicit: False), atunci cheile dict care nu sunt de tip de bază (str, int, float, bool, None) vor fi sărite în loc să genereze o TypeError.
asigura_ascii: Dacă assure_ascii este True (prestabilit), ieșirea este garantată că toate caracterele non-ASCII primite au escape. Dacă assure_ascii este False, aceste caractere vor fi afișate așa cum sunt.
check_circcular: Dacă check_circular este False (implicit: True), atunci verificarea referințelor circulare pentru tipurile de container va fi omisă și o referință circulară va avea ca rezultat o OverflowError (sau mai rău).
allow_in: Dacă allow_nan este False (implicit: True), atunci va fi o ValueError pentru a serializa valorile flotante în afara intervalului (nan, inf, -inf) în strictă conformitate cu specificația JSON. Dacă allow_nan este True, vor fi utilizați echivalentele lor JavaScript (NaN, Infinity, -Infinity).
liniuță: Dacă indent este un întreg sau șir nenegativ, atunci elementele matricei JSON și membrii obiectului vor fi destul de imprimate cu acel nivel de indentare. Un nivel de indentare de 0, negativ sau va insera doar linii noi. Niciunul (implicit) selectează cea mai compactă reprezentare. Folosirea unei indentări întregi pozitive indentează atâtea spații pe nivel. Dacă indent este un șir (cum ar fi ), acel șir este folosit pentru a indenta fiecare nivel.
separatoare: Dacă se specifică, separatorii ar trebui să fie un tuplu (separator_articol, separator_cheie). Valoarea implicită este (‘, ‘, ‘: ‘) dacă indent este Niciuna și (‘, ‘, ‘: ‘) în caz contrar. Pentru a obține cea mai compactă reprezentare JSON, ar trebui să specificați (‘, ‘, ‘:’) pentru a elimina spațiile albe.
Mod implicit: Dacă este specificat, implicit ar trebui să fie o funcție care este apelată pentru obiecte care nu pot fi serializate altfel. Ar trebui să returneze o versiune codabilă JSON a obiectului sau să genereze o TypeError. Dacă nu este specificat, TypeError este ridicată.
sort_keys: Dacă sort_keys este True (implicit: False), atunci rezultatul dicționarelor va fi sortat după cheie.
Exemplul #1: Trecerea dicționarului Python la funcția json.dumps() va returna un șir.
Python3
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))> |
>
>
Ieșire
Șir json echivalent al dicționarului: {1: Bun venit, 2: to, 3: Geeks, 4: for, 5: Geeks}
Exemplul #2: Prin setarea tastelor de trecere la True (implicit: Fals), omitem automat tastele care nu sunt de tipul de bază.
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)> |
>
>
Ieșire
Șir json echivalent al dicționarului: {2: to, 3: Geeks, 4: for, 5: Geeks}
Exemplul #3:
șir în întreg java
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)> |
>
>
Ieșire:
Șir json echivalent al dicționarului: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}
Exemplul #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)> |
>
>
actrița indiană rani mukerji
Ieșire:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }> Exemplul #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)> |
>
>
Ieșire:
Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }> Exemplul #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)> |
>
>
Ieșire:
Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>