ó ™¢IhÄ6ã óÔ•SrSr/SQrSrSSKJrJr SSKJr SSK r \"S S S S SSSS 9r S S S S SSSSS S . S jr S S S S SSSSS S . Sjr \"SSS9r SrSSSSSSS.SjrSSSSSSS.Sjrg)a JSON (JavaScript Object Notation) is a subset of JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data interchange format. :mod:`json` exposes an API familiar to users of the standard library :mod:`marshal` and :mod:`pickle` modules. It is derived from a version of the externally maintained simplejson library. Encoding basic Python object hierarchies:: >>> 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"]' Compact encoding:: >>> import json >>> mydict = {'4': 5, '6': 7} >>> json.dumps([1,2,3,mydict], separators=(',', ':')) '[1,2,3,{"4":5,"6":7}]' Pretty printing:: >>> import json >>> print(json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)) { "4": 5, "6": 7 } Decoding JSON:: >>> import json >>> obj = ['foo', {'bar': ['baz', None, 1.0, 2]}] >>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') == obj True >>> json.loads('"\\"foo\\bar"') == '"foo\x08ar' True >>> from io import StringIO >>> io = StringIO('["streaming API"]') >>> json.load(io)[0] == 'streaming API' True Specializing JSON object decoding:: >>> 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) >>> from decimal import Decimal >>> json.loads('1.1', parse_float=Decimal) == Decimal('1.1') True Specializing JSON object encoding:: >>> import json >>> def encode_complex(obj): ... if isinstance(obj, complex): ... return [obj.real, obj.imag] ... raise TypeError(f'Object of type {obj.__class__.__name__} ' ... f'is not JSON serializable') ... >>> json.dumps(2 + 1j, default=encode_complex) '[2.0, 1.0]' >>> json.JSONEncoder(default=encode_complex).encode(2 + 1j) '[2.0, 1.0]' >>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j)) '[2.0, 1.0]' Using json.tool from the shell to validate and pretty-print:: $ echo '{"json":"obj"}' | python -m json.tool { "json": "obj" } $ echo '{ 1.2:3.4}' | python -m json.tool Expecting property name enclosed in double quotes: line 1 column 3 (char 2) z2.0.9)ÚdumpÚdumpsÚloadÚloadsÚ JSONDecoderÚJSONDecodeErrorÚ JSONEncoderzBob Ippolito é)rr)réNFT)ÚskipkeysÚ ensure_asciiÚcheck_circularÚ allow_nanÚindentÚ separatorsÚdefault) r r r rÚclsrrrÚ sort_keysc ó•U(dEU(a>U(a7U(a0Uc-Uc*Uc'U c$U (dU (d[RU5n O&Uc[nU"SX#XEUUXšS.U D6RU5n U Hn URU 5 M g)aESerialize ``obj`` as a JSON formatted stream to ``fp`` (a ``.write()``-supporting file-like object). If ``skipkeys`` is true then ``dict`` keys that are not basic types (``str``, ``int``, ``float``, ``bool``, ``None``) will be skipped instead of raising a ``TypeError``. If ``ensure_ascii`` is false, then the strings written to ``fp`` can contain non-ASCII characters if they appear in strings contained in ``obj``. Otherwise, all such characters are escaped in JSON strings. If ``check_circular`` is false, then the circular reference check for container types will be skipped and a circular reference will result in an ``RecursionError`` (or worse). If ``allow_nan`` is false, then it will be a ``ValueError`` to serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in strict compliance of the JSON specification, instead of using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``). If ``indent`` is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. ``None`` is the most compact representation. If specified, ``separators`` should be an ``(item_separator, key_separator)`` tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', ': ')`` otherwise. To get the most compact JSON representation, you should specify ``(',', ':')`` to eliminate whitespace. ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the ``.default()`` method to serialize additional types), specify it with the ``cls`` kwarg; otherwise ``JSONEncoder`` is used. N©r r r rrrrr©)Ú_default_encoderÚ iterencoderÚwrite)ÚobjÚfpr r r rrrrrrÚkwÚiterableÚchunks Ú$/usr/lib/python3.13/json/__init__.pyrrxsŒ€öZ žÞž9Ø ‰ ˜™¨:Ñ+=؉¦ ¶"Ü#×.Ñ.¨sÓ3‰à ‰;܈CÙð8 Ø)ÀvØ!Øñ8ð57ñ8÷9C¹ À3»ð ó ˆØ �‰�Žòóc óä•U(dDU(a=U(a6U(a/Uc,Uc)Uc&Uc#U (dU (d[RU5$Uc[nU"SXX4UXxU S.U D6RU5$)aSerialize ``obj`` to a JSON formatted ``str``. If ``skipkeys`` is true then ``dict`` keys that are not basic types (``str``, ``int``, ``float``, ``bool``, ``None``) will be skipped instead of raising a ``TypeError``. If ``ensure_ascii`` is false, then the return value can contain non-ASCII characters if they appear in strings contained in ``obj``. Otherwise, all such characters are escaped in JSON strings. If ``check_circular`` is false, then the circular reference check for container types will be skipped and a circular reference will result in an ``RecursionError`` (or worse). If ``allow_nan`` is false, then it will be a ``ValueError`` to serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in strict compliance of the JSON specification, instead of using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``). If ``indent`` is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. ``None`` is the most compact representation. If specified, ``separators`` should be an ``(item_separator, key_separator)`` tuple. The default is ``(', ', ': ')`` if *indent* is ``None`` and ``(',', ': ')`` otherwise. To get the most compact JSON representation, you should specify ``(',', ':')`` to eliminate whitespace. ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. If *sort_keys* is true (default: ``False``), then the output of dictionaries will be sorted by key. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the ``.default()`` method to serialize additional types), specify it with the ``cls`` kwarg; otherwise ``JSONEncoder`` is used. rr)rÚencoder) rr r r rrrrrrrs rrr·su€öX žÞž9Ø ‰ ˜™¨:Ñ+=؉¦ ¶"Ü×&Ñ& sÓ+Ð+Ø �{ÜˆÙ ð ØØ%À6ظ)ñ ð ñ  ÷‰f�S‹kð r )Ú object_hookÚobject_pairs_hookcóä•URnU"[R[R45(agU"[R[R 45(agU"[R 5(ag[U5S:¼a<US(dUS(aS$S$US(dUS (d US (aS $S $g [U5S :XaUS(dgUS(dg g )Nzutf-32zutf-16z utf-8-sigér r z utf-16-bez utf-32-beééz utf-16-lez utf-32-lezutf-8)Ú startswithÚcodecsÚ BOM_UTF32_BEÚ BOM_UTF32_LEÚ BOM_UTF16_BEÚ BOM_UTF16_LEÚBOM_UTF8Úlen)ÚbÚ bstartswiths rÚdetect_encodingr3ôs΀Ø—,‘,€KÙ”F×'Ñ'¬×)<Ñ)<Ð=×>Ñ>ØÙ”F×'Ñ'¬×)<Ñ)<Ð=×>Ñ>ØÙ”6—?‘?×#Ñ#Øä ˆ1ƒv�ƒ{Ø��tð#$ A§$�;Ð 7¨KÐ 7Ø��tð#$ A§$¨!¨A¯$�;Ð ?°KÐ ?ð ð ô ˆQ‹�1‹Ø��tàØ��tàà r ©rr#Ú parse_floatÚ parse_intÚparse_constantr$c ó>•[UR54XX4XVS.UD6$)a]Deserialize ``fp`` (a ``.read()``-supporting file-like object containing a JSON document) to a Python object. ``object_hook`` is an optional function that will be called with the result of any object literal decode (a ``dict``). The return value of ``object_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders (e.g. JSON-RPC class hinting). ``object_pairs_hook`` is an optional function that will be called with the result of any object literal decoded with an ordered list of pairs. The return value of ``object_pairs_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders. If ``object_hook`` is also defined, the ``object_pairs_hook`` takes priority. To use a custom ``JSONDecoder`` subclass, specify it with the ``cls`` kwarg; otherwise ``JSONDecoder`` is used. r4)rÚread)rrr#r5r6r7r$rs rrrs7€ô& �—‘“ð RØ ØØ%ñ RðOQñ RðRr c ó•[U[5(a$URS5(a [SUS5eOX[U[[ 45(d"[ SURR35eUR[U5S5nUc+Uc(Uc%Uc"UcUcU(d[RU5$Uc[nUbX'S'UbXgS'UbX7S'UbXGS 'UbXWS 'U"S 0UD6RU5$) aîDeserialize ``s`` (a ``str``, ``bytes`` or ``bytearray`` instance containing a JSON document) to a Python object. ``object_hook`` is an optional function that will be called with the result of any object literal decode (a ``dict``). The return value of ``object_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders (e.g. JSON-RPC class hinting). ``object_pairs_hook`` is an optional function that will be called with the result of any object literal decoded with an ordered list of pairs. The return value of ``object_pairs_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders. If ``object_hook`` is also defined, the ``object_pairs_hook`` takes priority. ``parse_float``, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal). ``parse_int``, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num_str). This can be used to use another datatype or parser for JSON integers (e.g. float). ``parse_constant``, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN. This can be used to raise an exception if invalid JSON numbers are encountered. To use a custom ``JSONDecoder`` subclass, specify it with the ``cls`` kwarg; otherwise ``JSONDecoder`` is used. uz-Unexpected UTF-8 BOM (decode using utf-8-sig)r z5the JSON object must be str, bytes or bytearray, not Ú surrogatepassr#r$r5r6r7r) Ú isinstanceÚstrr)rÚbytesÚ bytearrayÚ TypeErrorÚ __class__Ú__name__Údecoder3Ú_default_decoderr)Úsrr#r5r6r7r$rs rrr+s'€ôD�!”S×ÑØ �<‰<˜× !Ñ !Ü!Ð"QØ"# Qó(ð (ð "ô˜!œe¤YÐ/×0Ñ0Üð#Ø#$§;¡;×#7Ñ#7Ð"8ð:ó;ð ;à �H‰H”_ QÓ'¨Ó 9ˆà ‰ ˜ Ñ+Ø Ñ  +Ñ"5Ø Ñ "Ð'8Ñ'@ÎÜ×&Ñ& qÓ)Ð)Ø �{܈ØÑØ'ˆ=ÑØÑ$Ø"3Ð ÑØÑØ'ˆ=ÑØÑØ#ˆ;‰ØÑ!Ø-Ð ÑÙ ‰9�‰9× Ñ ˜AÓ Ðr )Ú__doc__Ú __version__Ú__all__Ú __author__ÚdecoderrrÚencoderrr*rrrrDr3rrrr rÚrLsÃðñ`ðB€ ò €ð -€ ç1Ý Û áØ ØØØØ ØØ ñÐð$°$ÀtؘD¨¸$Ø õ<ð~!¨tÀDؘD¨¸$Ø õ7ñt¨4À4ÑHÐòð< d¸Ø t¸tõRð2 d¸Ø t¸tö<r