JSON er et akronym, der står for JavaScript Object Notation. På trods af navnet er JSON et sprogagnostisk format, der oftest bruges til at overføre data mellem systemer og til tider gemme data. Programmer skrevet i Python, såvel som mange andre programmeringssprog, kan indtage JSON-formaterede data og kan serialisere data i hukommelsen til JSON-formatet. Python understøtter JSON gennem en indbygget pakke kaldet json. For at bruge denne funktion skal du importere json-pakken til Python-scriptet eller modulet, hvor du ønsker at serialisere eller deserialisere dine data. JSON bruger kommaseparerede nøgleværdipar indeholdt i dobbelte anførselstegn og adskilt af kolon. Brødteksten i en JSON-fil kan afgrænses i krøllede klammeparenteser { } eller firkantede klammeparenteser [] (også kendt som parenteser i nogle lokaliteter). JSON-formatet ser ud til at ligne ordbogen i Python, men detaljerne i JSON-formatet har betydelige forskelle, så vær forsigtig, når du arbejder med begge formater.
Bemærk: For mere information, se Læs, Skriv og parse JSON ved hjælp af Python
Json.dumps()
json.dumps()-funktionen vil konvertere et undersæt af Python-objekter til en json-streng. Ikke alle objekter kan konverteres, og du skal muligvis oprette en ordbog med data, du ønsker at afsløre, 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)
Parametre:
obj: Serialiser obj som en JSON-formateret stream
spring over taster: Hvis springtaster er True (standard: False), så vil dict-taster, der ikke er af en grundlæggende type (str, int, float, bool, None), springes over i stedet for at hæve en TypeError.
sikre_ascii: Hvis sure_ascii er True (standard), er output garanteret at have alle indkommende ikke-ASCII-tegn escaped. Hvis sure_ascii er False, vil disse tegn blive udskrevet som de er.
check_circular: Hvis check_circular er False (standard: True), vil den cirkulære referencecheck for containertyper blive sprunget over, og en cirkulær reference vil resultere i en OverflowError (eller værre).
tillade_ind: Hvis allow_nan er False (standard: True), vil det være en ValueError at serialisere float-værdier uden for rækkevidde (nan, inf, -inf) i nøje overensstemmelse med JSON-specifikationen. Hvis allow_nan er True, vil deres JavaScript-ækvivalenter (NaN, Infinity, -Infinity) blive brugt.
indrykning: Hvis indrykning er et ikke-negativt heltal eller streng, vil JSON-array-elementer og objektmedlemmer blive udskrevet pænt med det indrykningsniveau. Et indrykningsniveau på 0, negativt, eller vil kun indsætte nye linjer. Ingen (standard) vælger den mest kompakte repræsentation. Brug af et positivt heltal indrykning indrykker så mange mellemrum pr. niveau. Hvis indrykning er en streng (såsom ), bruges denne streng til at indrykke hvert niveau.
separatorer: Hvis det er angivet, skal separatorer være en (item_separator, key_separator) tuple. Standarden er (', ', ': '), hvis indrykning er Ingen og (', ', ': ') ellers. For at få den mest kompakte JSON-repræsentation bør du angive (', ', ':') for at eliminere mellemrum.
Standard: Hvis det er angivet, skal standard være en funktion, der bliver kaldt for objekter, der ellers ikke kan serialiseres. Det bør returnere en JSON-kodebar version af objektet eller rejse en TypeError. Hvis det ikke er angivet, hæves TypeError.
sorteringsnøgler: Hvis sort_keys er True (standard: False), så vil outputtet af ordbøger blive sorteret efter nøgle.
Eksempel #1: Hvis du sender Python-ordbogen til funktionen json.dumps() returneres en streng.
Python3
mylive cricket
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))> |
>
>
Produktion
Tilsvarende json-streng af ordbog: {1: Velkommen, 2: til, 3: Nørder, 4: for, 5: Nørder}
Eksempel #2: Ved at sætte overspringstasterne til True (standard: False) springer vi automatisk over de taster, der ikke er af grundlæggende 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)> |
>
>
Produktion
Tilsvarende json-streng af ordbog: {2: til, 3: Nørder, 4: for, 5: Nørder}
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)> |
anmærkninger i springstøvle
>
>
Output:
Tilsvarende json-streng af ordbog: {2: til, 3: Nørder, 4: for, 5: Nørder, 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)> |
>
>
Produktion:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>
Eksempel #5:
gimp rektangel tegning
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)> |
>
>
Produktion:
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)> |
>
>
Produktion:
Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>