logo

json.dumps() i Python

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' }>