json :: decoder :: JSONDecoder :: Class JSONDecoder
[frames] | no frames]

Class JSONDecoder

object --+
         |
        JSONDecoder

Simple JSON <http://json.org> decoder

Performs the following translations in decoding by default:

+---------------+-------------------+ | JSON | Python | +===============+===================+ | object | dict | +---------------+-------------------+ | array | list | +---------------+-------------------+ | string | unicode | +---------------+-------------------+ | number (int) | int, long | +---------------+-------------------+ | number (real) | float | +---------------+-------------------+ | true | True | +---------------+-------------------+ | false | False | +---------------+-------------------+ | null | None | +---------------+-------------------+

It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their corresponding ``float`` values, which is outside the JSON spec.

Instance Methods
 
__init__(self, encoding=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True)
``encoding`` determines the encoding used to interpret any ``str`` objects decoded by this instance (utf-8 by default).
 
decode(self, s, _w=<built-in method match of _sre.SRE_Pattern object at 0x2794718>)
Return the Python representation of ``s`` (a ``str`` or ``unicode`` instance containing a JSON document)
 
raw_decode(self, s, **kw)
Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties

Inherited from object: __class__

Method Details

__init__(self, encoding=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True)
(Constructor)

 

``encoding`` determines the encoding used to interpret any ``str`` objects decoded by this instance (utf-8 by default). It has no effect when decoding ``unicode`` objects.

Note that currently only encodings that are a superset of ASCII work, strings of other encodings should be passed in as ``unicode``.

``object_hook``, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given ``dict``. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting).

``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, null, true, false. This can be used to raise an exception if invalid JSON numbers are encountered.

Overrides: object.__init__

raw_decode(self, s, **kw)

 

Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended.

This can be used to decode a JSON document from a string that may have extraneous data at the end.