Python解析json

来源:互联网 发布:html5简单小游戏源码 编辑:程序博客网 时间:2024/05/21 07:51

刚学习到Python中解析json的方法,觉得有必要在这里坐下笔记。

我是在python的内部环境中看的

<span style="font-family: Arial, Helvetica, sans-serif;">      </span><span style="font-family: Arial, Helvetica, sans-serif;">Encoding basic Python object hierarchies</span>
<span style="font-family: Arial, Helvetica, sans-serif;">             >>> import json</span>

        >>> 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(u'\u1234')        "\u1234"        >>> print json.dumps('\\')        "\\"        >>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)        {"a": 0, "b": 0, "c": 0}        >>> from StringIO import StringIO        >>> io = StringIO()        >>> json.dump(['streaming API'], io)        >>> io.getvalue()        '["streaming API"]'
Compact encoding::            >>> import json        >>> json.dumps([1,2,3,{'4': 5, '6': 7}], sort_keys=True, separators=(',',':'))        '[1,2,3,{"4":5,"6":7}]'        Pretty printing::            >>> import json        >>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,        ...                  indent=4, separators=(',', ': '))        {            "4": 5,            "6": 7        }
    Decoding JSON::            >>> import json        >>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]        >>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') == obj        True        >>> json.loads('"\\"foo\\bar"') == u'"foo\x08ar'        True        >>> from StringIO 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(repr(o) + " 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]'




或者也可以去看官方文档,自己能学到东西才是真的!

0 0