Python中的json模块用于处理JSON数据,提供了将Python对象转换为JSON字符串的方法(dumps),以及将JSON字符串解析为Python对象的方法(loads)。
以下是json模块的一些常用方法:
1、将Python对象obj转换为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(bool):默认为False,如果设置为True,则字典中缺少键的项将被跳过,而不是引发KeyError异常。ensure_ascii(bool):默认为True,如果设置为True,则输出的JSON字符串只包含ASCII字符。如果设置为False,则输出的JSON字符串可以包含非ASCII字符。check_circular(bool):默认为True,如果设置为True,则在检测到循环引用时会引发TypeError异常。如果设置为False,则不检查循环引用。allow_nan(bool):默认为True,如果设置为True,则允许NaN、Infinity和-Infinity这些特殊浮点值。如果设置为False,则不允许这些特殊浮点值。cls(class):可选参数,指定一个可调用对象来构造结果字符串。通常不需要使用此参数。indent(int):可选参数,指定缩进空格数。如果设置了该参数,则生成的JSON字符串将按照指定的缩进格式进行格式化。separators(str):可选参数,指定分隔符。如果设置了该参数,则生成的JSON字符串将按照指定的分隔符进行格式化。default(callable):可选参数,指定一个函数,当遇到无法序列化的对象时,将调用该函数并返回其结果。sort_keys(bool):可选参数,指定是否对字典的键进行排序。如果设置为True,则生成的JSON字符串中的字典键将按字母顺序排序。**kw:可选参数,用于传递其他关键字参数。示例如下:
import jsondata = {"name": "张三","age": 30,"city": "北京"}json_str = json.dumps(data, ensure_ascii=False)print(json_str)2、将JSON字符串s解析为Python对象
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)可以设置一些可选参数,
s(str)需要解析的JSON字符串。encoding(str, optional)指定编码方式,默认为None。cls(class, optional)指定解析后的对象类型,默认为None。object_hook(callable, optional)指定一个函数,用于转换字典中的值,默认为None。parse_float(callable, optional)指定一个函数,用于解析浮点数,默认为float()。parse_int(callable, optional)指定一个函数,用于解析整数,默认为int()。parse_constant(callable, optional)指定一个函数,用于解析常量,默认为None。object_pairs_hook(callable, optional)指定一个函数,用于转换字典中的键值对,默认为None。**kw可选参数,用于传递其他关键字参数示例如下
import jsonjson_str = '{"name": "张三", "age": 30, "city": "北京"}'data = json.loads(json_str)print(data)3、将Python对象obj序列化为JSON字符串并写入文件fp
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)可以设置一些可选参数 如indent表示缩进空格数等。 示例如下
import jsondata = {"name": "张三","age": 30,"city": "北京"}with open('data.json', 'w') as f:json.dump(data, f, ensure_ascii=False)4、从文件fp中读取JSON字符串并解析为Python对象
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)可以设置一些可选参数, 同上 示例如下
import jsonwith open('data.json', 'r') as f:data = json.load(f)print(data)