Python之json模块

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}