json
— JSON-kodare och -avkodare¶
Källkod: Lib/json/__init__.py
JSON (JavaScript Object Notation), specificerat av RFC 7159 (som föråldrar RFC 4627) och av ECMA-404, är ett lättviktigt datautbytesformat inspirerat av JavaScript objektlitteral syntax (även om det inte är en strikt delmängd av JavaScript [1] ).
Anteckning
Termen ”objekt” i samband med JSON-bearbetning i Python kan vara tvetydig. Alla värden i Python är objekt. I JSON avser ett objekt alla data som är förpackade inom hakparenteser, på samma sätt som en Python-ordbok.
Varning
Var försiktig när du analyserar JSON-data från otillförlitliga källor. En skadlig JSON-sträng kan leda till att avkodaren förbrukar betydande CPU- och minnesresurser. Vi rekommenderar att du begränsar storleken på de data som ska analyseras.
Denna modul exponerar ett API som är bekant för användare av standardbibliotekets moduler marshal
och pickle
.
Kodning av grundläggande Python-objekthierarkier:
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>> print(json.dumps('\u1234'))
"\u1234"
>>> print(json.dumps('\\'))
"\\"
>>> print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
{"a": 0, "b": 0, "c": 0}
>>> from io import StringIO
>>> io = StringIO()
>>> json.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'
Kompakt kodning:
>>> import json
>>> json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'
Vacker utskrift:
>>> import json
>>> print(json.dumps({'6': 7, '4': 5}, sort_keys=True, indent=4))
{
"4": 5,
"6": 7
}
Anpassa kodning av JSON-objekt:
>>> import json
>>> def custom_json(obj):
... if isinstance(obj, complex):
... return {'__complex__': True, 'real': obj.real, 'imag': obj.imag}
... raise TypeError(f'Cannot serialize object of {type(obj)}')
...
>>> json.dumps(1 + 2j, default=custom_json)
'{"__complex__": true, "real": 1.0, "imag": 2.0}'
Avkodning av JSON:
>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads('"\\"foo\\bar"')
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO('["streaming API"]')
>>> json.load(io)
['streaming API']
Anpassa avkodning av JSON-objekt:
>>> import json
>>> def as_complex(dct):
... if '__complex__' in dct:
... return complex(dct['real'], dct['imag'])
... return dct
...
>>> json.loads('{"__complex__": true, "real": 1, "imag": 2}',
... object_hook=as_complex)
(1+2j)
>>> import decimal
>>> json.loads('1.1', parse_float=decimal.Decimal)
Decimal('1.1')
Utökning av JSONEncoder
:
>>> import json
>>> class ComplexEncoder(json.JSONEncoder):
... def default(self, obj):
... if isinstance(obj, complex):
... return [obj.real, obj.imag]
... # Let the base class default method raise the TypeError
... return super().default(obj)
...
>>> json.dumps(2 + 1j, cls=ComplexEncoder)
'[2.0, 1.0]'
>>> ComplexEncoder().encode(2 + 1j)
'[2.0, 1.0]'
>>> list(ComplexEncoder().iterencode(2 + 1j))
['[2.0', ', 1.0', ']']
Använda json
från skalet för att validera och skriva ut snyggt:
$ echo '{"json":"obj"}' | python -m json
{
"json": "obj"
}
$ echo '{1.2:3.4}' | python -m json
Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Se Kommandoradsgränssnitt för detaljerad dokumentation.
Anteckning
JSON är en underdel av YAML 1.2. Den JSON som produceras av den här modulens standardinställningar (i synnerhet standardvärdet separators) är också en delmängd av YAML 1.0 och 1.1. Den här modulen kan därför också användas som en YAML-serialisator.
Anteckning
Den här modulens kodare och avkodare bevarar inmatnings- och utmatningsordning som standard. Ordningen går bara förlorad om de underliggande behållarna är oordnade.
Grundläggande användning¶
- json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)¶
Serialisera obj som en JSON-formaterad ström till fp (ett
.write()
-stödjande filliknande objekt) med hjälp av denna Python-tillJSON-konverteringstabell.Anteckning
Till skillnad från
pickle
ochmarshal
är JSON inte ett inramat protokoll, så försök att serialisera flera objekt med upprepade anrop tilldump()
med samma fp kommer att resultera i en ogiltig JSON-fil.- Parametrar:
obj (object) – Python-objektet som ska serialiseras.
fp (file-like object) – Det filliknande objekt som obj ska serialiseras till. Modulen
json
producerar alltidstr
objekt, intebytes
objekt, därför måstefp.write()
stödjastr
indata.skipkeys (bool) – Om
True
, kommer nycklar som inte är av en grundläggande typ (str
,int
,float
,bool
,None
) att hoppas över istället för att ge upphov till ettTypeError
. StandardFalse
.ensure_ascii (bool) – Om
True
(standard) garanteras att alla inkommande icke-ASCII-tecken i utdata är escapade. OmFalse
, kommer dessa tecken att matas ut som de är.check_circular (bool) – Om
False
, hoppar man över kontrollen av cirkulära referenser för containertyper och en cirkulär referens resulterar i ettRecursionError
(eller värre). StandardTrue
.allow_nan (bool) – Om
False
, serialisering av out-of-rangefloat
-värden (nan
,inf
,-inf
) kommer att resultera i enValueError
, i strikt överensstämmelse med JSON-specifikationen. OmTrue
(standard), används deras JavaScript-ekvivalenter (NaN
,Infinity
,-Infinity
).cls (a
JSONEncoder
subclass) – Om inställd, en anpassad JSON-kodare meddefault()
-metoden åsidosatt, för serialisering till anpassade datatyper. OmNone
(standard) användsJSONEncoder
.indent (int | str | None) – Om det är ett positivt heltal eller en sträng kommer JSON-arrayelement och objektmedlemmar att skrivas ut med den indragsnivån. Ett positivt heltal indenterar så många mellanslag per nivå; en sträng (t.ex.
"\t"
) används för att indentera varje nivå. Om noll, negativt eller""
(den tomma strängen) infogas endast nya rader. OmNone
(standard) används den mest kompakta representationen.separators (tuple | None) – En två-tupel:
(item_separator, key_separator)
. OmNone
(standard), är separators standard(', ', ': ')
om indent ärNone
, och(',', ': ')
annars. För den mest kompakta JSON, ange(',', ':')
för att eliminera blanksteg.default (callable | None) – En funktion som anropas för objekt som inte kan serialiseras på annat sätt. Den ska returnera en JSON-kodbar version av objektet eller ge upphov till ett
TypeError
. OmNone
(standard), kommerTypeError
att returneras.sort_keys (bool) – Om
True
, kommer ordböcker att matas ut sorterade efter nyckel. StandardFalse
.
Ändrad i version 3.2: Tillåt strängar för indent i tillägg till heltal.
Ändrad i version 3.4: Använd
(',', ': ')
som standard om indent inte ärNone
.Ändrad i version 3.6: Alla valfria parametrar är nu keyword-only.
- json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)¶
Serialiserar obj till en JSON-formaterad
str
med hjälp av denna konverteringstabell. Argumenten har samma betydelse som idump()
.Anteckning
Nycklar i nyckel/värde-par i JSON är alltid av typen
str
. När en ordbok konverteras till JSON omvandlas alla nycklar i ordboken till strängar. Om en ordbok konverteras till JSON och sedan tillbaka till en ordbok kan det därför hända att ordboken inte motsvarar den ursprungliga. Det vill säga,loads(dumps(x)) != x
om x har nycklar som inte är strängar.
- json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)¶
Deserialisera fp till ett Python-objekt med hjälp av JSON-till-Python-konverteringstabell.
- Parametrar:
fp (file-like object) – En
.read()
-stödjande text file eller binary file som innehåller det JSON-dokument som ska deserialiseras.cls (a
JSONDecoder
subclass) – Om inställd, en anpassad JSON-avkodare. Ytterligare nyckelordsargument tillload()
kommer att skickas till konstruktören av cls. OmNone
(standard), användsJSONDecoder
.object_hook (callable | None) – Om inställd, en funktion som anropas med resultatet av en JSON-objektlitteral som avkodats (en
dict
). Returvärdet för denna funktion kommer att användas istället fördict
. Denna funktion kan användas för att implementera anpassade avkodare, till exempel JSON-RPC class hinting. StandardNone
.object_pairs_hook (callable | None) – Om inställd, en funktion som anropas med resultatet av en JSON-objektlitteral som avkodas med en ordnad lista av par. Returvärdet för denna funktion kommer att användas i stället för
dict
. Den här funktionen kan användas för att implementera anpassade avkodare. Om object_hook också är inställd, har object_pairs_hook prioritet. StandardNone
.parse_float (callable | None) – Om den är inställd, en funktion som anropas med strängen för varje JSON-flat som ska avkodas. Om
None
(standard), är det likvärdigt medfloat(num_str)
. Detta kan användas för att analysera JSON-flottor till anpassade datatyper, t.ex.decimal.Decimal
.parse_int (callable | None) – Om den är inställd, en funktion som anropas med strängen för varje JSON int som ska avkodas. Om
None
(standard), är det likvärdigt medint(num_str)
. Detta kan användas för att analysera JSON heltal till anpassade datatyper, t.ex.float
.parse_constant (callable | None) – Om den är inställd, en funktion som anropas med en av följande strängar:
'-Infinity'
,'Infinity'
eller'NaN'
. Detta kan användas för att skapa ett undantag om ogiltiga JSON-nummer påträffas. StandardNone
.
- Höjer:
JSONDecodeError – När de data som deserialiseras inte är ett giltigt JSON-dokument.
UnicodeDecodeError – När de data som deserialiseras inte innehåller UTF-8-, UTF-16- eller UTF-32-kodade data.
Ändrad i version 3.1:
Lagt till den valfria parametern object_pairs_hook.
parse_constant anropas inte längre på ’null’, ’true’, ’false’.
Ändrad i version 3.6:
Alla valfria parametrar är nu keyword-only.
fp kan nu vara en binary file. Kodningen för indata bör vara UTF-8, UTF-16 eller UTF-32.
Ändrad i version 3.11: Standardvärdet parse_int för
int()
begränsar nu den maximala längden på heltalssträngen via tolkens Längdsbegränsning för konvertering av heltalssträngar för att undvika överbelastningsattacker.
- json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)¶
Identiskt med
load()
, men istället för ett filliknande objekt, deserialisera s (enstr
,bytes
ellerbytearray
-instans som innehåller ett JSON-dokument) till ett Python-objekt med hjälp av denna konverteringstabell.Ändrad i version 3.6: s kan nu vara av typen
bytes
ellerbytearray
. Kodningen för indata bör vara UTF-8, UTF-16 eller UTF-32.Ändrad i version 3.9: Nyckelordsargumentet encoding har tagits bort.
Kodare och avkodare¶
- class json.JSONDecoder(*, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True, object_pairs_hook=None)¶
Enkel JSON-avkodare.
Utför följande översättningar vid avkodning som standard:
JSON
Python
object
dict
array
list
string
str
number (int)
int
number (real)
float
true
True
false
False
null
None
Den förstår också
NaN
,Infinity
och-Infinity
som deras motsvarandefloat
-värden, vilket ligger utanför JSON-specifikationen.object_hook är en valfri funktion som kommer att anropas med resultatet av varje JSON-objekt som avkodas och dess returvärde kommer att användas i stället för den angivna
dict
. Detta kan användas för att tillhandahålla anpassade deserialiseringar (t.ex. för att stödja JSON-RPC class hinting).object_pairs_hook är en valfri funktion som anropas med resultatet av varje JSON-objekt som avkodats med en ordnad lista av par. Returvärdet för object_pairs_hook kommer att användas istället för
dict
. Den här funktionen kan användas för att implementera anpassade avkodare. Om object_hook också är definierad, har object_pairs_hook prioritet.Ändrad i version 3.1: Lagt till stöd för object_pairs_hook.
parse_float är en valfri funktion som anropas med strängen för varje JSON-flat som ska avkodas. Som standard är detta likvärdigt med
float(num_str)
. Detta kan användas för att använda en annan datatyp eller parser för JSON-flottor (t.ex.decimal.Decimal
).parse_int är en valfri funktion som anropas med strängen för varje JSON-int som ska avkodas. Som standard är detta likvärdigt med
int(num_str)
. Detta kan användas för att använda en annan datatyp eller parser för JSON-integraler (t.ex.float
).parse_constant är en valfri funktion som kommer att anropas med en av följande strängar:
'-Infinity'
,'Infinity'
,'NaN'
. Detta kan användas för att skapa ett undantag om ogiltiga JSON-tal påträffas.Om strict är false (
True
är standard) kommer kontrolltecken att tillåtas i strängar. Kontrolltecken i det här sammanhanget är de som har teckenkoder i intervallet 0-31, inklusive'\t'
(tab),'\n'
,'\r'
och'\0'
.Om data som deserialiseras inte är ett giltigt JSON-dokument, kommer ett
JSONDecodeError
att uppstå.Ändrad i version 3.6: Alla parametrar är nu keyword-only.
- decode(s)¶
Returnerar Python-representationen av s (en
str
-instans som innehåller ett JSON-dokument).JSONDecodeError
kommer att uppstå om det angivna JSON-dokumentet inte är giltigt.
- class json.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)¶
Utökad JSON-kodare för Python-datastrukturer.
Stöder följande objekt och typer som standard:
Python
JSON
dict
object
list, tuple
array
str
string
int, float, int- & float-deriverade Enum
number
True
true
False
false
None
null
Ändrad i version 3.4: Stöd för int- och float-deriverade Enum-klasser har lagts till.
För att utöka detta till att känna igen andra objekt, subklassa och implementera en
default()
-metod med en annan metod som returnerar ett serialiserbart objekt föro
om möjligt, annars bör den anropa superklassens implementering (för att höjaTypeError
).Om skipkeys är false (standard), kommer ett
TypeError
att uppstå när man försöker koda nycklar som inte ärstr
,int
,float
,bool
ellerNone
. Om skipkeys är true, hoppas sådana objekt helt enkelt över.Om ensure_ascii är true (standard) garanteras att alla inkommande icke-ASCII-tecken i utdata är escapade. Om ensure_ascii är false kommer dessa tecken att matas ut som de är.
Om check_circular är true (standard) kommer listor, dicts och anpassade kodade objekt att kontrolleras för cirkulära referenser under kodningen för att förhindra en oändlig rekursion (vilket skulle orsaka ett
RecursionError
). I annat fall sker ingen sådan kontroll.Om allow_nan är true (standard) kommer
NaN
,Infinity
och-Infinity
att kodas som sådana. Detta beteende är inte förenligt med JSON-specifikationen, men överensstämmer med de flesta JavaScript-baserade kodare och avkodare. Annars kommer det att vara ettValueError
att koda sådana floats.Om sort_keys är true (standard:
False
) kommer utdata från ordböcker att sorteras efter nyckel; detta är användbart för regressionstester för att säkerställa att JSON-serialiseringar kan jämföras på daglig basis.Om indent är ett icke-negativt heltal eller en sträng, kommer JSON-arrayelement och objektmedlemmar att skrivas ut med den indentnivån. En indragsnivå på 0, negativ eller
""
infogar bara nya rader.None
(standard) väljer den mest kompakta representationen. Om du använder ett positivt heltal indenteras så många mellanslag per nivå. Om indent är en sträng (t.ex."\t"
) används den strängen för att indentera varje nivå.Ändrad i version 3.2: Tillåt strängar för indent i tillägg till heltal.
Om det anges ska separatorer vara en tupel av
(item_separator, key_separator)
. Standardvärdet är(', ', ': ')
om indent ärNone
och(',', ': ')
annars. För att få den mest kompakta JSON-representationen bör du ange(',', ':')
för att eliminera blanksteg.Ändrad i version 3.4: Använd
(',', ': ')
som standard om indent inte ärNone
.Om det anges ska default vara en funktion som anropas för objekt som inte kan serialiseras på annat sätt. Den ska returnera en JSON-kodbar version av objektet eller ge upphov till ett
TypeError
. Om den inte specificeras, genererasTypeError
.Ändrad i version 3.6: Alla parametrar är nu keyword-only.
- default(o)¶
Implementera denna metod i en subklass så att den returnerar ett serialiserbart objekt för o, eller anropar basimplementationen (för att skapa ett
TypeError
).Till exempel, för att stödja godtyckliga iteratorer, kan du implementera
default()
så här:def default(self, o): försök: iterable = iter(o) utom TypeError: passera else: return list(iterable) # Låt basklassens standardmetod höja TypeError return super().default(o)
- encode(o)¶
Returnerar en JSON-strängrepresentation av en Python-datastruktur, o. Till exempel:
>>> json.JSONEncoder().encode({"foo": ["bar", "baz"]}) '{"foo": ["bar", "baz"]}'
- iterencode(o)¶
Kodar det givna objektet, o, och ger varje strängrepresentation som är tillgänglig. Till exempel:
for chunk in json.JSONEncoder().iterencode(bigobject): mysocket.write(chunk)
Undantag¶
- exception json.JSONDecodeError(msg, doc, pos)¶
Underklass till
ValueError
med följande ytterligare attribut:- msg¶
Det oformaterade felmeddelandet.
- doc¶
Det JSON-dokument som analyseras.
- pos¶
Startindex för doc där tolkningen misslyckades.
- lineno¶
Den linje som motsvarar pos.
- colno¶
Den kolumn som motsvarar pos.
Tillagd i version 3.5.
Standardöverensstämmelse och interoperabilitet¶
JSON-formatet specificeras av RFC 7159 och av ECMA-404. I det här avsnittet beskrivs modulens nivå av överensstämmelse med RFC. För enkelhetens skull beaktas inte underklasserna JSONEncoder
och JSONDecoder
, och andra parametrar än de som uttryckligen nämns.
Denna modul följer inte RFC strikt, utan implementerar vissa tillägg som är giltiga JavaScript men inte giltiga JSON. Detta gäller i synnerhet följande:
Oändliga och NaN-talvärden accepteras och matas ut;
Upprepade namn inom ett objekt accepteras, och endast värdet för det sista namn-värdeparet används.
Eftersom RFC tillåter RFC-kompatibla parsers att acceptera inmatningstexter som inte är RFC-kompatibla, är den här modulens deserializer tekniskt sett RFC-kompatibel med standardinställningarna.
Kodning av tecken¶
RFC kräver att JSON representeras med antingen UTF-8, UTF-16 eller UTF-32, där UTF-8 är den rekommenderade standardversionen för maximal interoperabilitet.
Som RFC tillåter, men inte kräver, ställer den här modulens serializer in ensure_ascii=True som standard, vilket innebär att utdata escapas så att de resulterande strängarna endast innehåller ASCII-tecken.
Förutom parametern ensure_ascii definieras den här modulen strikt i termer av konvertering mellan Python-objekt och Unicode-strängar
, och tar därför inte direkt upp frågan om teckenkodning.
Enligt RFC är det förbjudet att lägga till en byteordermark (BOM) i början av en JSON-text, och den här modulens serialiserare lägger inte till någon BOM i utdata. RFC tillåter, men kräver inte, att JSON-deserialiserare ignorerar en initial BOM i sin indata. Den här modulens deserialiserare ger upphov till ett ValueError
när en initial BOM finns.
RFC förbjuder inte uttryckligen JSON-strängar som innehåller byte-sekvenser som inte motsvarar giltiga Unicode-tecken (t.ex. oparade UTF-16-surrogat), men noterar att de kan orsaka problem med interoperabilitet. Som standard accepterar och matar den här modulen ut (när de finns i den ursprungliga str
) kodpunkter för sådana sekvenser.
Oändliga och NaN-talvärden¶
RFC tillåter inte representation av oändliga eller NaN-talvärden. Trots detta accepterar och matar den här modulen som standard ut Infinity
, -Infinity
och NaN
som om de vore giltiga JSON-numeriska bokstavliga värden:
>>> # Neither of these calls raises an exception, but the results are not valid JSON
>>> json.dumps(float('-inf'))
'-Infinity'
>>> json.dumps(float('nan'))
'NaN'
>>> # Same when deserializing
>>> json.loads('-Infinity')
-inf
>>> json.loads('NaN')
nan
I serializern kan parametern allow_nan användas för att ändra detta beteende. I deserializern kan parametern parse_constant användas för att ändra detta beteende.
Upprepade namn inom ett objekt¶
RFC anger att namnen i ett JSON-objekt ska vara unika, men anger inte hur upprepade namn i JSON-objekt ska hanteras. Som standard ger den här modulen inte upphov till något undantag, utan ignorerar alla utom det sista namn-värdeparet för ett givet namn:
>>> weird_json = '{"x": 1, "x": 2, "x": 3}'
>>> json.loads(weird_json)
{'x': 3}
Parametern object_pairs_hook kan användas för att ändra detta beteende.
Värden på högsta nivå som inte är objekt eller arrayer¶
Den gamla versionen av JSON som specificeras av den föråldrade RFC 4627 krävde att toppnivåvärdet för en JSON-text måste vara antingen ett JSON-objekt eller en array (Python dict
eller list
), och kunde inte vara ett JSON null-, boolean-, nummer- eller strängvärde. RFC 7159 tog bort den begränsningen, och den här modulen implementerar inte och har aldrig implementerat den begränsningen i varken dess serializer eller dess deserializer.
För att uppnå maximal interoperabilitet kan det dock vara bra om du själv frivilligt följer begränsningen.
Begränsningar i genomförandet¶
Vissa implementeringar av JSON-deserializer kan sätta gränser för:
storleken på accepterade JSON-texter
den maximala nivån för nestning av JSON-objekt och matriser
intervall och precision för JSON-tal
innehåll och maximal längd för JSON-strängar
Denna modul inför inte några sådana begränsningar utöver de som gäller för de relevanta Python-datatyperna själva eller Python-tolken själv.
När du serialiserar till JSON bör du vara uppmärksam på sådana begränsningar i applikationer som kan konsumera din JSON. I synnerhet är det vanligt att JSON-tal deserialiseras till IEEE 754-tal med dubbel precision och därmed omfattas av den representationens begränsningar för intervall och precision. Detta är särskilt relevant vid serialisering av Python int
-värden av extremt stor magnitud, eller vid serialisering av instanser av ”exotiska” numeriska typer som decimal.Decimal
.
Kommandoradsgränssnitt¶
Källkod: Lib/json/tool.py
Modulen json
kan anropas som ett skript via python -m json
för att validera och pretty-printa JSON-objekt. Undermodulen json.tool
implementerar detta gränssnitt.
Om de valfria argumenten infile
och outfile
inte anges, används sys.stdin
respektive sys.stdout
:
$ echo '{"json": "obj"}' | python -m json
{
"json": "obj"
}
$ echo '{1.2:3.4}' | python -m json
Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Ändrad i version 3.5: Utdata är nu i samma ordning som indata. Använd alternativet --sort-keys
för att sortera utdata från ordböcker alfabetiskt efter nyckel.
Ändrad i version 3.14: Modulen json
kan nu köras direkt som python -m json
. För bakåtkompatibilitet stöds fortfarande att anropa CLI som python -m json.tool
.
Alternativ för kommandoraden¶
- infile¶
Den JSON-fil som ska valideras eller skrivas ut:
$ python -m json mp_films.json [ { "title": "And Now for Something Completely Different", "year": 1971 }, { "title": "Monty Python and the Holy Grail", "year": 1975 } ]
Om infile inte anges, läs från
sys.stdin
.
- outfile¶
Skriver utdata från infile till den angivna outfile. I annat fall skrivs den till
sys.stdout
.
- --sort-keys¶
Sortera utdata från ordböcker alfabetiskt efter nyckel.
Tillagd i version 3.5.
- --no-ensure-ascii¶
Inaktivera escaping av icke-ascii-tecken, se
json.dumps()
för mer information.Tillagd i version 3.9.
- --json-lines¶
Parsa varje inmatningsrad som ett separat JSON-objekt.
Tillagd i version 3.8.
- --indent, --tab, --no-indent, --compact¶
Ömsesidigt uteslutande alternativ för kontroll av blanksteg.
Tillagd i version 3.9.
- -h, --help¶
Visa hjälpmeddelandet.
Fotnoter