Back to module index
Go to module by name
json
json.encoder
Implementation of JSONEncoder
Classes
JSONEncoder
Extensible JSON <http://json.org> encoder for Python data structures.
Supports the following objects and types by default:
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, 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``).
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)
# Let the base class default method raise the TypeError
return JSONEncoder.default(self, o)
encode(self, o)
Return a JSON string representation of a Python data structure.
>>> from json.encoder import JSONEncoder
>>> JSONEncoder().encode({"foo": ["bar", "baz"]})
'{"foo": ["bar", "baz"]}'
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)
item_separator = ', '
key_separator = ': '
Encoder
_iterencode(obj, _current_indent_level) -> iterable
default = <member 'default' of '_json.Encoder' objects>
default
encoder = <member 'encoder' of '_json.Encoder' objects>
encoder
indent = <member 'indent' of '_json.Encoder' objects>
indent
item_separator = <member 'item_separator' of '_json.Encoder' objects>
item_separator
key_separator = <member 'key_separator' of '_json.Encoder' objects>
key_separator
markers = <member 'markers' of '_json.Encoder' objects>
markers
skipkeys = <member 'skipkeys' of '_json.Encoder' objects>
skipkeys
sort_keys = <member 'sort_keys' of '_json.Encoder' objects>
sort_keys
Functions
c_encode_basestring
encode_basestring(...)
encode_basestring(string) -> string
Return a JSON representation of a Python string
c_encode_basestring_ascii
encode_basestring_ascii(...)
encode_basestring_ascii(string) -> string
Return an ASCII-only JSON representation of a Python string
encode_basestring
encode_basestring(...)
encode_basestring(string) -> string
Return a JSON representation of a Python string
encode_basestring_ascii
encode_basestring_ascii(...)
encode_basestring_ascii(string) -> string
Return an ASCII-only JSON representation of a Python string
py_encode_basestring
py_encode_basestring(s)
Return a JSON representation of a Python string
py_encode_basestring_ascii
py_encode_basestring_ascii(s)
Return an ASCII-only JSON representation of a Python string
Other members
ESCAPE = re.compile('[\\x00-\\x1f\\\\"\\b\\f\\n\\r\\t]')
ESCAPE_ASCII = re.compile('([\\\\"]|[^\\ -~])')
ESCAPE_DCT = {'\\': '\\\\', '"': '\\"', '\x08': '\\b', '\x0c': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t', '\x00': '\\u0000', '\x01': '\\u0001', '\x02': '\\u0002', '\x03': '\\u0003', '\x04': '\\u0004', '\x05': '\\u0005', '\x06': '\\u0006', '\x07': '\\u0007', '\x0b': '\\u000b', '\x0e': '\\u000e', '\x0f': '\\u000f', '\x10': '\\u0010', '\x11': '\\u0011', '\x12': '\\u0012', '\x13': '\\u0013', '\x14': '\\u0014', '\x15': '\\u0015', '\x16': '\\u0016', '\x17': '\\u0017', '\x18': '\\u0018', '\x19': '\\u0019', '\x1a': '\\u001a', '\x1b': '\\u001b', '\x1c': '\\u001c', '\x1d': '\\u001d', '\x1e': '\\u001e', '\x1f': '\\u001f'}
HAS_UTF8 = re.compile(b'[\x80-\xff]')
INFINITY = inf
i = 31
Modules
re