JSON 对象必须是 str、bytes 或 bytearray,而不是 dict

作者:编程家 分类: js 时间:2025-07-27

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输、配置文件存储等场景。在Python中,我们常常使用JSON来表示和处理数据。然而,需要注意的是,JSON对象必须是字符串(str)、字节(bytes)或字节数组(bytearray),而不能直接使用字典(dict)。

在Python中,我们可以使用内置的json模块来进行JSON的序列化(对象转为JSON字符串)和反序列化(JSON字符串转为对象)操作。下面我们将通过一些实例来更好地了解这些操作。

JSON序列化

首先,让我们看看如何将Python对象转换为JSON字符串。json模块中的dumps()函数可以将Python对象转换为JSON格式的字符串。

python

import json

data = {

'name': 'Alice',

'age': 20,

'gender': 'female'

}

json_str = json.dumps(data)

print(json_str)

上述代码中,我们定义了一个字典data,其中包含了一个人的姓名、年龄和性别。通过调用dumps()函数,将data字典转换为JSON字符串,并将其打印输出。输出结果如下:

{"name": "Alice", "age": 20, "gender": "female"}

这就是我们所期望的JSON字符串。

JSON反序列化

接下来,我们看看如何将JSON字符串转换回Python对象。json模块中的loads()函数可以将JSON字符串解析为Python对象。

python

import json

json_str = '{"name": "Alice", "age": 20, "gender": "female"}'

data = json.loads(json_str)

print(data)

在上述代码中,我们定义了一个JSON字符串json_str,它包含了一个人的姓名、年龄和性别。通过调用loads()函数,将JSON字符串解析为一个Python对象,并将其打印输出。输出结果如下:

{'name': 'Alice', 'age': 20, 'gender': 'female'}

我们可以看到,JSON字符串已经成功地转换为了Python的字典对象。

在本文中,我们学习了如何使用Python中的json模块来进行JSON字符串的序列化和反序列化操作。通过将Python对象转换为JSON字符串,我们可以方便地在不同的系统之间传递数据。而通过将JSON字符串解析为Python对象,我们可以对接收到的数据进行处理和分析。

JSON的应用已经非常广泛,无论是前端开发还是后端开发,都离不开对JSON数据的处理。因此,掌握JSON的基本操作是非常重要的。

案例代码

下面是一个完整的示例代码,展示了如何使用json模块进行JSON的序列化和反序列化操作:

python

import json

# JSON序列化

data = {

'name': 'Alice',

'age': 20,

'gender': 'female'

}

json_str = json.dumps(data)

print(json_str)

# JSON反序列化

json_str = '{"name": "Alice", "age": 20, "gender": "female"}'

data = json.loads(json_str)

print(data)

通过运行上述代码,我们可以得到以下输出:

{"name": "Alice", "age": 20, "gender": "female"}

{'name': 'Alice', 'age': 20, 'gender': 'female'}

通过这个示例,我们可以更好地理解JSON的序列化和反序列化操作,并且掌握了如何在Python中使用json模块处理JSON数据。