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