Aestate
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
aestate.ajson.sim.encoder.JSONEncoder Class Reference
Inheritance diagram for aestate.ajson.sim.encoder.JSONEncoder:
Inheritance graph
Collaboration diagram for aestate.ajson.sim.encoder.JSONEncoder:
Collaboration graph

Public Member Functions

def __init__ (self, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, encoding='utf-8', default=None, use_decimal=True, namedtuple_as_object=True, tuple_as_array=True, bigint_as_string=False, item_sort_key=None, for_json=False, ignore_nan=False, int_as_string_bitcount=None, iterable_as_array=False)
 
def default (self, o)
 
def encode (self, o)
 
def iterencode (self, o, _one_shot=False)
 

Public Attributes

 skipkeys
 
 ensure_ascii
 
 check_circular
 
 allow_nan
 
 sort_keys
 
 use_decimal
 
 namedtuple_as_object
 
 tuple_as_array
 
 iterable_as_array
 
 bigint_as_string
 
 item_sort_key
 
 for_json
 
 ignore_nan
 
 int_as_string_bitcount
 
 indent
 
 key_separator
 
 item_separator
 
 default
 
 encoding
 

Static Public Attributes

string item_separator = ', '
 
string key_separator = ': '
 

Detailed Description

Extensible JSON <http://json.org> encoder for Python data structures.

Supports the following objects and types by default:

+-------------------+---------------+
| Python            | JSON          |
+===================+===============+
| dict, namedtuple  | object        |
+-------------------+---------------+
| list, tuple       | array         |
+-------------------+---------------+
| str, unicode      | string        |
+-------------------+---------------+
| int, long, float  | number        |
+-------------------+---------------+
| True              | true          |
+-------------------+---------------+
| False             | false         |
+-------------------+---------------+
| None              | null          |
+-------------------+---------------+

To extend this to recognize other objects, subclass and implement a
``.default()`` method with another method that returns a serializable
object for ``o`` if possible, otherwise it should call the superclass
implementation (to raise ``TypeError``).

Definition at line 109 of file encoder.py.

Constructor & Destructor Documentation

◆ __init__()

def aestate.ajson.sim.encoder.JSONEncoder.__init__ (   self,
  skipkeys = False,
  ensure_ascii = True,
  check_circular = True,
  allow_nan = True,
  sort_keys = False,
  indent = None,
  separators = None,
  encoding = 'utf-8',
  default = None,
  use_decimal = True,
  namedtuple_as_object = True,
  tuple_as_array = True,
  bigint_as_string = False,
  item_sort_key = None,
  for_json = False,
  ignore_nan = False,
  int_as_string_bitcount = None,
  iterable_as_array = False 
)
Constructor for JSONEncoder, with sensible defaults.

If skipkeys is false, then it is a TypeError to attempt
encoding of keys that are not str, int, long, float or None.  If
skipkeys is True, such items are simply skipped.

If ensure_ascii is true, the output is guaranteed to be str
objects with all incoming unicode characters escaped.  If
ensure_ascii is false, the output will be unicode object.

If check_circular is true, then lists, dicts, and custom encoded
objects will be checked for circular references during encoding to
prevent an infinite recursion (which would cause an OverflowError).
Otherwise, no such check takes place.

If allow_nan is true, then NaN, Infinity, and -Infinity will be
encoded as such.  This behavior is not JSON specification compliant,
but is consistent with most JavaScript based encoders and decoders.
Otherwise, it will be a ValueError to encode such floats.

If sort_keys is true, then the output of dictionaries will be
sorted by key; this is useful for regression tests to ensure
that JSON serializations can be compared on a day-to-day basis.

If indent is a string, then JSON array elements and object members
will be pretty-printed with a newline followed by that string repeated
for each level of nesting. ``None`` (the default) selects the most compact
representation without any newlines. For backwards compatibility with
versions of simplejson earlier than 2.1.0, an integer is also accepted
and is converted to a string with that many spaces.

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.

If specified, default is a function that gets called for objects
that can't otherwise be serialized.  It should return a JSON encodable
version of the object or raise a ``TypeError``.

If encoding is not None, then all input strings will be
transformed into unicode using that encoding prior to JSON-encoding.
The default is UTF-8.

If use_decimal is true (default: ``True``), ``decimal.Decimal`` will
be supported directly by the encoder. For the inverse, decode JSON
with ``parse_float=decimal.Decimal``.

If namedtuple_as_object is true (the default), objects with
``_asdict()`` methods will be encoded as JSON objects.

If tuple_as_array is true (the default), tuple (and subclasses) will
be encoded as JSON arrays.

If *iterable_as_array* is true (default: ``False``),
any object not in the above table that implements ``__iter__()``
will be encoded as a JSON array.

If bigint_as_string is true (not the default), ints 2**53 and higher
or lower than -2**53 will be encoded as strings. This is to avoid the
rounding that happens in Javascript otherwise.

If int_as_string_bitcount is a positive number (n), then int of size
greater than or equal to 2**n or lower than or equal to -2**n will be
encoded as strings.

If specified, item_sort_key is a callable used to sort the items in
each dictionary. This is useful if you want to sort items other than
in alphabetical order by key.

If for_json is true (not the default), objects with a ``for_json()``
method will use the return value of that method for encoding as JSON
instead of the object.

If *ignore_nan* is true (default: ``False``), then out of range
:class:`float` values (``nan``, ``inf``, ``-inf``) will be serialized
as ``null`` in compliance with the ECMA-262 specification. If true,
this will override *allow_nan*.

Definition at line 141 of file encoder.py.

Member Function Documentation

◆ default()

def aestate.ajson.sim.encoder.JSONEncoder.default (   self,
  o 
)
Implement this method in a subclass such that it returns
a serializable object for ``o``, or calls the base implementation
(to raise a ``TypeError``).

For example, to support arbitrary iterators, you could
implement default like this::

    def default(self, o):
try:
    iterable = iter(o)
except TypeError:
    pass
else:
    return list(iterable)
return JSONEncoder.default(self, o)

Definition at line 254 of file encoder.py.

◆ encode()

def aestate.ajson.sim.encoder.JSONEncoder.encode (   self,
  o 
)
Return a JSON string representation of a Python data structure.

>>> from simplejson import JSONEncoder
>>> JSONEncoder().encode({"foo": ["bar", "baz"]})
'{"foo": ["bar", "baz"]}'

Reimplemented in aestate.ajson.sim.encoder.JSONEncoderForHTML.

Definition at line 275 of file encoder.py.

Here is the call graph for this function:

◆ iterencode()

def aestate.ajson.sim.encoder.JSONEncoder.iterencode (   self,
  o,
  _one_shot = False 
)
Encode the given object and yield each string
representation as available.

For example::

    for chunk in JSONEncoder().iterencode(bigobject):
mysocket.write(chunk)

Reimplemented in aestate.ajson.sim.encoder.JSONEncoderForHTML.

Definition at line 304 of file encoder.py.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ allow_nan

aestate.ajson.sim.encoder.JSONEncoder.allow_nan

Definition at line 226 of file encoder.py.

◆ bigint_as_string

aestate.ajson.sim.encoder.JSONEncoder.bigint_as_string

Definition at line 232 of file encoder.py.

◆ check_circular

aestate.ajson.sim.encoder.JSONEncoder.check_circular

Definition at line 225 of file encoder.py.

◆ default

aestate.ajson.sim.encoder.JSONEncoder.default

Definition at line 245 of file encoder.py.

◆ encoding

aestate.ajson.sim.encoder.JSONEncoder.encoding

Definition at line 246 of file encoder.py.

◆ ensure_ascii

aestate.ajson.sim.encoder.JSONEncoder.ensure_ascii

Definition at line 224 of file encoder.py.

◆ for_json

aestate.ajson.sim.encoder.JSONEncoder.for_json

Definition at line 234 of file encoder.py.

◆ ignore_nan

aestate.ajson.sim.encoder.JSONEncoder.ignore_nan

Definition at line 235 of file encoder.py.

◆ indent

aestate.ajson.sim.encoder.JSONEncoder.indent

Definition at line 239 of file encoder.py.

◆ int_as_string_bitcount

aestate.ajson.sim.encoder.JSONEncoder.int_as_string_bitcount

Definition at line 236 of file encoder.py.

◆ item_separator [1/2]

string aestate.ajson.sim.encoder.JSONEncoder.item_separator = ', '
static

Definition at line 138 of file encoder.py.

◆ item_separator [2/2]

aestate.ajson.sim.encoder.JSONEncoder.item_separator

Definition at line 243 of file encoder.py.

◆ item_sort_key

aestate.ajson.sim.encoder.JSONEncoder.item_sort_key

Definition at line 233 of file encoder.py.

◆ iterable_as_array

aestate.ajson.sim.encoder.JSONEncoder.iterable_as_array

Definition at line 231 of file encoder.py.

◆ key_separator [1/2]

string aestate.ajson.sim.encoder.JSONEncoder.key_separator = ': '
static

Definition at line 139 of file encoder.py.

◆ key_separator [2/2]

aestate.ajson.sim.encoder.JSONEncoder.key_separator

Definition at line 241 of file encoder.py.

◆ namedtuple_as_object

aestate.ajson.sim.encoder.JSONEncoder.namedtuple_as_object

Definition at line 229 of file encoder.py.

◆ skipkeys

aestate.ajson.sim.encoder.JSONEncoder.skipkeys

Definition at line 223 of file encoder.py.

◆ sort_keys

aestate.ajson.sim.encoder.JSONEncoder.sort_keys

Definition at line 227 of file encoder.py.

◆ tuple_as_array

aestate.ajson.sim.encoder.JSONEncoder.tuple_as_array

Definition at line 230 of file encoder.py.

◆ use_decimal

aestate.ajson.sim.encoder.JSONEncoder.use_decimal

Definition at line 228 of file encoder.py.


The documentation for this class was generated from the following file: