json库
python 原始类型与 json 类型的转化对照表:
Python |
JSON |
dict |
object |
list(, tuple) |
array |
unicode(, str) |
string |
int(, long) |
number (int) |
float |
number (real) |
True |
true |
False |
false |
None |
null |
json.dumps()
将 Python 对象编码成 JSON 字符串.
| json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) |
参数 |
说明 |
skipkeys |
如果为真,则"字典"键不是基本类型(str , int , float , bool , None )将被跳过而不是提出“类型错误”。 |
ensure_ascii |
如果为假, 则返回值可以包含非 ASCII字符(如果它们出现在“obj”中包含的字符串中). 否则, 所有此类字符在 JSON 字符串中转义. |
check_circular |
如果为假,则跳过对于容器类型的循环引用检查并且循环引用会导致“溢出错误”(或更糟)。 |
allow_nan |
如果为假, 那么在严格遵守 JSON 规范的情况下, 对于python序列化对象超出范围的浮点值(nan , inf , -inf )将是“值错误”, 而不是使用 JavaScript 等效项(NaN , Infinity , -Infinity ). |
cls |
要使用自定义的"JSONEncoder"子类(例如, 重写''.default()''方法以序列化其他类型), 请使用"cls"kwarg指定它; 否则, 将使用JSON 编码器. |
indent |
如果是非负整数, 则 JSON 数组元素和对象成员将使用该缩进级别进行美观打印. 缩进级别 0 将仅插入换行符. “无”是最紧凑的表示形式. |
separators |
如果指定, 分隔符应为(item_separator,key_separator)元组. 默认值为(', ', ': '). 要获得最紧凑的 JSON 表示形式,您应该指定(',', ':')以消除空格。 |
default |
"default(obj)"是一个函数, 应该返回 obj 的可序列化版本或引发类型错误. 默认值只是引发类型错误. |
sort_keys |
如果为真, 则字典的输出将按键排序. |
| import json |
| |
| data = [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}] |
| data2 = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')) |
| print(data2) |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
json.loads()
将已编码的 JSON 字符串解码为 Python 对象.
| json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) |
参数 |
说明 |
s |
将"s"(包含 JSON 文档的"str"、"bytes"或"bytearray"实例)反序列化为 Python 对象 |
cls |
要使用自定义的" JSON 解码器"子类, 请使用"cls" kwarg指定它; 否则, 将使用" JSON 解码器" |
object_hook |
"object_hook"是一个可选函数, 将使用任何对象文本解码(字典)的结果进行调用. 用(object_hook)的返回值代替字典. 此功能可用于实现自定义解码器(例如 JSON-RPC 类提示) |
parse_float |
"parse_float"(如果指定)将与要解码的每个 JSON 浮点数的字符串一起调用. 默认情况下, 这等效于浮点数(num_str). 这可用于将其他数据类型或解析器用于 JSON 浮点数 |
parse_int |
"parse_int"(如果指定)将与要解码的每个 JSON 整型的字符串一起调用. 默认情况下, 这等效于 int(num_str). 这可用于对 JSON 整数(例如浮点数)使用其他数据类型或解析器 |
parse_constant |
"parse_constant"(如果指定)将使用以下字符串之一调用: -Infinity, Infinity, NaN. 这可用于在遇到无效的 JSON 编号时引发异常 |
object_pairs_hook |
"object_pairs_hook"是一个可选函数, 它将使用有序的对列表解码的任何对象文本的结果进行调用. 将使用"object_pairs_hook"的返回值代替"字典". 此功能可用于实现自定义解码器. 如果还定义了"object_hook", 则"object_pairs_hook"优先 |
| data3 = json.loads(data2) |
| print(data3) |
| |
| |
json.dump()
向文件写入对应 JSON 格式的 python 对象.
| json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) |
| with open('data.json', 'w') as f: |
| json.dump(data, f, indent=4) |
json.load()
读取 JSON 数据.
| json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) |
| with open('data.json', 'r') as f: |
| data = json.load(f) |
| print(data) |
| |
本文作者:khrushchefox
本文链接:https://www.cnblogs.com/khrushchefox/p/16825696.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步