JSON

    如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。

    JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:

    JSON类型 Python类型
    {} dict
    [] list
    "string" str
    1234.56 int或float
    true/false True/False
    null None

    Python内置的 json 模块提供了非常完善的Python对象到JSON格式的转换。我们先看看如何把Python对象变成一个JSON:

    >>> import json

    >>> d = dict(name='Bob', age=20, score=88)

    >>> json.dumps(d)

    '{"age": 20, "score": 88, "name": "Bob"}'

    dumps() 方法返回一个 str ,内容就是标准的JSON。类似的, dump() 方法可以直接把JSON写入一个 file-like Object

    要把JSON反序列化为Python对象,用 loads() 或者对应的 load() 方法,前者把JSON的字符串反序列化,后者从 file-like Object 中读取字符串并反序列化:

    >>> json_str = '{"age": 20, "score": 88, "name": "Bob"}'

    >>> json.loads(json_str)

    {'age': 20, 'score': 88, 'name': 'Bob'}

    由于JSON标准规定JSON编码是UTF-8,所以我们总是能正确地在Python的 str 与JSON的字符串之间转换。