Пример #1
0
def _toggle_speedups(enabled):
    import simplejson.decoder as dec
    import simplejson.encoder as enc
    import simplejson.scanner as scan
    c_make_encoder = _import_c_make_encoder()
    if enabled:
        dec.scanstring = dec.c_scanstring or dec.py_scanstring
        enc.c_make_encoder = c_make_encoder
        enc.encode_basestring_ascii = (enc.c_encode_basestring_ascii
                                       or enc.py_encode_basestring_ascii)
        scan.make_scanner = scan.c_make_scanner or scan.py_make_scanner
    else:
        dec.scanstring = dec.py_scanstring
        enc.c_make_encoder = None
        enc.encode_basestring_ascii = enc.py_encode_basestring_ascii
        scan.make_scanner = scan.py_make_scanner
    dec.make_scanner = scan.make_scanner
    global _default_decoder
    _default_decoder = JSONDecoder(
        encoding=None,
        object_hook=None,
        object_pairs_hook=None,
    )
    global _default_encoder
    _default_encoder = JSONEncoder(
        skipkeys=False,
        ensure_ascii=True,
        check_circular=True,
        allow_nan=True,
        indent=None,
        separators=None,
        encoding='utf-8',
        default=None,
    )
Пример #2
0
 def __init__(self,
              extractor,
              needs=None,
              store=False,
              key=None,
              encoder=JSONEncoder,
              **extractor_args):
     super(JSONFeature, self).__init__(extractor,
                                       needs=needs,
                                       store=store,
                                       encoder=encoder,
                                       decoder=JSONDecoder(),
                                       key=key,
                                       **extractor_args)
Пример #3
0
            and allow_nan is True and cls is None and indent is None
            and separators is None and encoding == 'utf-8' and not kw):
        return _default_encoder.encode(obj)
    if cls is None:
        cls = JSONEncoder
    return cls(skipkeys=skipkeys,
               ensure_ascii=ensure_ascii,
               check_circular=check_circular,
               allow_nan=allow_nan,
               indent=indent,
               separators=separators,
               encoding=encoding,
               **kw).encode(obj)


_default_decoder = JSONDecoder(encoding=None, object_hook=None)


def load(fp, encoding=None, cls=None, object_hook=None, **kw):
    """
    Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
    a JSON document) to a Python object.

    If the contents of ``fp`` is encoded with an ASCII based encoding other
    than utf-8 (e.g. latin-1), then an appropriate ``encoding`` name must
    be specified. Encodings that are not ASCII based (such as UCS-2) are
    not allowed, and should be wrapped with
    ``codecs.getreader(fp)(encoding)``, or simply decoded to a ``unicode``
    object and passed to ``loads()``

    ``object_hook`` is an optional function that will be called with the
Пример #4
0
             (default is None and not sort_keys))))))) and not kw:
        return _default_encoder.encode(obj)
    if cls is None:
        cls = JSONEncoder
    return cls(skipkeys=skipkeys,
               ensure_ascii=ensure_ascii,
               check_circular=check_circular,
               allow_nan=allow_nan,
               indent=indent,
               separators=separators,
               default=default,
               sort_keys=sort_keys,
               **kw).encode(obj)


_default_decoder = JSONDecoder(object_hook=None, object_pairs_hook=None)


def load(fp,
         cls=None,
         object_hook=None,
         parse_float=None,
         parse_int=None,
         parse_constant=None,
         object_pairs_hook=None,
         **kw):
    return loads(fp.read(),
                 cls=cls,
                 object_hook=object_hook,
                 parse_float=parse_float,
                 parse_int=parse_int,