1. dumps 和 dump 的区别
下面是两个函数的定义:
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)
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)
可以看到,dump比 dumps多了一个参数 fp。
dumps 会直接将生成的 json串 返回,也就是可以采取 json_str=dumps()的方式来获取结果。
但是 dump 没有返回值,它会将生成的 json串 输出到 fp 流中。
2. loads 和 load 的区别
下面是两个函数的定义:
load(fp, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
可以看到 load 的前两个参数是 fp 以及 cls,而 loads 的前两个参数是 s 和 encoding。
loads 会将 json串直接进行解码输出。
load 是从 fp 文件流中读取json串,然后进行解码输出。本质load函数定义的时候还是调用的 loads函数。