JSON er et akronym som står for JavaScript Object Notation. Til tross for navnet er JSON et språkagnostisk format som oftest brukes til å overføre data mellom systemer, og noen ganger lagre data. Programmer skrevet i Python, så vel som mange andre programmeringsspråk, kan innta JSON-formaterte data, og kan serialisere data i minnet til JSON-formatet. Python støtter JSON gjennom en innebygd pakke kalt json. For å bruke denne funksjonen, importer json-pakken til Python-skriptet eller modulen der du ønsker å serialisere eller deserialisere dataene dine. JSON bruker kommadelte nøkkelverdipar i doble anførselstegn og atskilt med kolon. Brødteksten til en JSON-fil kan avgrenses med krøllete klammeparenteser { } eller firkantede klammeparenteser [] (også kjent som parenteser i enkelte lokaliteter). JSON-formatet ser ut til å være likt ordboken i Python, men spesifikasjonene til JSON-formatet har betydelige forskjeller, så vær forsiktig når du arbeider med begge formatene.
Merk: For mer informasjon, se Les, Skriv og analyser JSON med Python
Json.dumps()
json.dumps()-funksjonen vil konvertere et delsett av Python-objekter til en json-streng. Ikke alle objekter kan konverteres, og du må kanskje lage en ordbok med data du ønsker å eksponere før du serialiserer til JSON.
Syntaks:
json.dumps(obj, *, skipkeys=False, sure_ascii=True, check_circular=True, allow_nan=True, cls=Ingen, indent=Ingen, separatorer=Ingen, default=Ingen, sort_keys=False, **kw)
Parametere:
obj: Serialiser obj som en JSON-formatert strøm
hoppe over tastene: Hvis skipkeys er True (standard: False), vil dict-taster som ikke er av en grunnleggende type (str, int, float, bool, None) hoppes over i stedet for å øke en TypeError.
sikre_ascii: Hvis sure_ascii er True (standard), er utdata garantert å ha alle innkommende ikke-ASCII-tegn escaped. Hvis sure_ascii er False, vil disse tegnene sendes ut som de er.
check_circular: Hvis check_circular er False (standard: True), vil den sirkulære referansekontrollen for beholdertyper hoppes over og en sirkulær referanse vil resultere i en OverflowError (eller verre).
tillate_in: Hvis allow_nan er False (standard: True), vil det være en ValueError å serialisere flyteverdier utenfor rekkevidde (nan, inf, -inf) i streng overensstemmelse med JSON-spesifikasjonen. Hvis allow_nan er True, vil JavaScript-ekvivalentene deres (NaN, Infinity, -Infinity) brukes.
innrykk: Hvis innrykk er et ikke-negativt heltall eller en streng, vil JSON-matriseelementer og objektmedlemmer være pent trykt med det innrykksnivået. Et innrykksnivå på 0, negativ, eller vil bare sette inn nye linjer. Ingen (standard) velger den mest kompakte representasjonen. Bruk av et positivt heltall rykker inn så mange mellomrom per nivå. Hvis innrykk er en streng (som ), brukes den strengen til å rykke inn hvert nivå.
skilletegn: Hvis spesifisert, skal skilletegn være en (vareseparator, nøkkelseparator) tuppel. Standard er (', ', ': ') hvis innrykk er Ingen og (', ', ': ') ellers. For å få den mest kompakte JSON-representasjonen, bør du spesifisere (', ', ':') for å eliminere mellomrom.
misligholde: Hvis det er spesifisert, bør standard være en funksjon som blir kalt for objekter som ellers ikke kan serialiseres. Den skal returnere en JSON-kodebar versjon av objektet eller oppstå en TypeError. Hvis ikke spesifisert, oppstår TypeError.
sorteringsnøkler: Hvis sort_keys er True (standard: False), vil utdataene fra ordbøkene bli sortert etter nøkkel.
Eksempel #1: Hvis du sender Python-ordboken til json.dumps()-funksjonen, returneres en streng.
Python3
arraylist sortert java
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))> |
>
>
Produksjon
Tilsvarende json-ordbokstreng: {1: Velkommen, 2: til, 3: Geeks, 4: for, 5: Geeks}
Eksempel #2: Ved å sette skip-tastene til True (standard: False) hopper vi automatisk over nøklene som ikke er av grunnleggende type.
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)> |
>
>
Produksjon
Ekvivalent json-streng av ordbok: {2: til, 3: Geeks, 4: for, 5: Geeks}
Eksempel #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)> |
sortere en arraylist
>
>
Utgang:
Tilsvarende json-streng av ordbok: {2: til, 3: Geeks, 4: for, 5: Geeks, 6: NaN}
Eksempel #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)> |
>
>
Produksjon:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>
Eksempel #5:
binære tretyper
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)> |
>
>
Produksjon:
Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>
Eksempel #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)> |
>
>
Produksjon:
Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>