json模块在python中用于处理json格式数据,主要包含以下4个函数,其中json.dumps()、json.loads()较为常用。
json.dumps()
它表示“dump string”,将一个python值转换成json格式的字符串。该python值只能是以下数据类型之一:字典、列表、元组、数字、字符串、布尔型,而集合类型无法转换。
import json dict_data = {"a": 1, "b": 2} json_data = json.dumps(dict_data) # 打印转换结果 print(type(json_data)) print(json_data)
上述代码是将dict格式数据转换成json格式字符串,运行结果为:
<class 'str'> {"a": 1, "b": 2}
不同于直接使用str()进行转译,json.dumps()将python值转换成字符串类型时会使用双引号。为了方便理解,以下演示直接使用str()进行字符串的转译:
import json dict_data = {"a": 1, "b": 2} str_data = str(dict_data) # 打印转换结果 print(type(str_data)) print(str_data)
上述代码将dict格式数据用str()转换成字符串,运行结果为:
<class 'str'> {'a': 1, 'b': 2}
可别小瞧了单引号和双引号之间的区别,请注意json字符串总是使用双引号。
json.loads()
它表示“load string” ,将一个json格式字符串转换成python值。
import json dict_data = {"a": 1, "b": 2} # 将dict格式数据转换成json格式字符串 json_data = json.dumps(dict_data) # 将json格式字符串转换成对应的python值 load_data = json.loads(json_data) # 打印转换结果 print(type(load_data)) print(load_data)
上述代码运行结果为:
<class 'dict'> {'a': 1, 'b': 2}
json.dump()
将一个python值转换成json格式并且存入指定文件,用法如下:
import json dict_data = {"a": 1, "b": 2} # 将dict_data转换成json格式并且存入data.json文件中 with open('data.json', 'w') as f: json.dump(dict_data, f)
json.load()
将一个指定json格式文件转换成python值。比如把前一个例子中data.json文件数据还原成dict格式数据:
import json with open('data.json', 'r') as f: data = json.load(f) print(type(data)) print(data)
上述代码运行结果为:
<class 'dict'> {'a': 1, 'b': 2}
参考资料