JSON är en akronym som står för JavaScript Object Notation. Trots sitt namn är JSON ett språkagnostiskt format som oftast används för att överföra data mellan system och ibland lagra data. Program skrivna i Python, såväl som många andra programmeringsspråk, kan mata in JSON-formaterad data och kan serialisera data i minnet till JSON-formatet. Pytonorm stöder JSON genom ett inbyggt paket som heter json. För att använda den här funktionen, importera json-paketet till Python-skriptet eller modulen där du vill serialisera eller deserialisera dina data. JSON använder kommaavgränsade nyckelvärdepar som finns i dubbla citattecken och separerade med kolon. Brödtexten i en JSON-fil kan avgränsas med klammerparenteser { } eller fyrkantiga klammerparenteser [] (även känd som hakparenteser i vissa språk). JSON-formatet verkar likna ordboken i Python, men detaljerna i JSON-formatet har betydande skillnader, så var försiktig när du arbetar med båda formaten.
Notera: För mer information, se Läs, Skriv och analysera JSON med Python
Json.dumps()
Funktionen json.dumps() konverterar en delmängd av Python-objekt till en json-sträng. Alla objekt är inte konverterbara och du kan behöva skapa en ordbok med data som du vill exponera innan du serialiserar till JSON.
Syntax:
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)
Parametrar:
obj: Serialisera obj som en JSON-formaterad ström
hoppa över tangenter: Om skipkeys är True (standard: False), kommer dict-tangenter som inte är av en grundläggande typ (str, int, float, bool, None) att hoppas över istället för att höja ett TypeError.
sure_ascii: Om sure_ascii är True (standardinställningen) är utdata garanterat att ha alla inkommande icke-ASCII-tecken escaped. Om sure_ascii är False kommer dessa tecken att matas ut som de är.
check_circular: Om check_circular är False (standard: True), kommer den cirkulära referenskontrollen för behållartyper att hoppas över och en cirkulär referens kommer att resultera i ett OverflowError (eller värre).
tillåt_in: Om allow_nan är False (standard: True), kommer det att vara ett ValueError att serialisera flytvärden utanför intervallet (nan, inf, -inf) i strikt överensstämmelse med JSON-specifikationen. Om allow_nan är True kommer deras JavaScript-ekvivalenter (NaN, Infinity, -Infinity) att användas.
indrag: Om indrag är ett icke-negativt heltal eller en sträng, kommer JSON-matriselement och objektmedlemmar att skrivas ut med den indragsnivån. En indragsnivå på 0, negativ, eller kommer bara att infoga nyrader. Ingen (standard) väljer den mest kompakta representationen. Använda ett positivt heltals indrag drar in så många blanksteg per nivå. Om indrag är en sträng (som ), används den strängen för att dra in varje nivå.
separatorer: Om det anges ska avgränsare vara en (artikelseparator, nyckelseparator) tupel. Standard är (', ', ': ') om indrag är Ingen och (', ', ': ') annars. För att få den mest kompakta JSON-representationen bör du ange (', ', ':') för att eliminera blanksteg.
standard: Om det anges bör standard vara en funktion som anropas för objekt som annars inte kan serialiseras. Det bör returnera en JSON-kodbar version av objektet eller skapa ett TypeError. Om det inte anges, höjs TypeError.
sorteringsnycklar: Om sort_keys är True (standard: False), kommer utdata från ordböcker att sorteras efter nyckel.
Exempel #1: Om du skickar Python-ordboken till funktionen json.dumps() returneras en sträng.
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))> |
>
>
lista i java
Produktion
Motsvarande json-sträng av ordbok: {1: Välkommen, 2: till, 3: Nördar, 4: för, 5: Nördar}
Exempel #2: Genom att sätta överhoppningsknapparna till True(standard: False) hoppar vi automatiskt över nycklar som inte är av grundläggande typ.
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)> |
>
min skärmstorlek
>
Produktion
Motsvarande json-sträng av ordbok: {2: till, 3: Nördar, 4: för, 5: Nördar}
Exempel #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)> |
>
>
Utgång:
Motsvarande json-sträng av ordbok: {2: till, 3: Nördar, 4: för, 5: Nördar, 6: NaN}
Exempel #4:
Python3
läsa från csv-fil i java
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)> |
obj i java
>
>
Produktion:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>
Exempel #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)> |
>
>
Produktion:
Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>
Exempel #6:
Python3
if else uttalande java
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' }>