json 笔记¶
序列化¶
json 模块提供了两个方法用于序列化 Python 对象:
json.dumps(obj, *, **kw):将 Python 对象序列化为 JSON 格式的字符串json.dump(obj, fp, *, **kw):将 Python 对象序列化为 JSON 格式的字符串,并将其写入文件对象fp
每个方法都有一些可选参数,用于控制序列化的行为:
skipkeys若为True,则字典中的键不是基本类型时会抛出TypeError,默认为Falseensure_ascii若为True,则所有非 ASCII 字符会被转义为\uXXXX形式,若为False则不转义,默认为Truecheck_circular若为True,则检查循环引用,默认为Trueallow_nan若为True,则允许nan、inf、-inf,默认为Trueindent缩进空格数,若为None则不缩进,默认为Noneseparators分隔符,为一个元组,包含两个字符串,第一个字符串用于分隔键值对,第二个字符串用于分隔元素,默认为(', ', ': ')default用于处理不支持的类型,可以是一个函数或类,会被调用并返回一个可序列化的对象sort_keys若为True,则输出的 JSON 字符串中的键会按字典顺序排序,默认为False
反序列化¶
json 模块提供了两个方法用于反序列化 JSON 字符串:
json.loads(s, *, **kw):将 JSON 格式的字符串反序列化为 Python 对象json.load(fp, *, **kw):将文件对象fp中的 JSON 字符串反序列化为 Python 对象