python数组转换为JSON数组
时间: 2025-06-30 11:14:44 浏览: 9
在Python中,将数组(通常指的是列表`list`、`array.array`或其他类似结构)转换为JSON数组是一个常见的需求,尤其是在前后端数据交互或API开发中。Python标准库中的`json`模块提供了简便的方法来完成这一任务。
### 基本类型数组的转换
对于包含基本数据类型的Python列表(如整数、浮点数、字符串等),可以直接使用`json.dumps()`进行序列化:
```python
import json
data = [1, 2, 3, 4, 5]
json_data = json.dumps(data)
print(json_data) # 输出: [1, 2, 3, 4, 5]
```
上述代码将一个整数列表转换成了JSON格式的字符串表示[^3]。
### 自定义对象数组的转换
如果数组中包含的是自定义类的实例,则需要提供一种方法将这些对象转换为可以被`json.dumps()`处理的数据结构(通常是字典)。可以通过定义类的`to_dict()`方法或使用`default`参数实现:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def default(o):
return o.__dict__
people = [Person("Alice", 30), Person("Bob", 25)]
json_people = json.dumps(people, default=default)
print(json_people) # 输出: [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
```
### 使用`__dict__`属性
对于简单情况,可以直接利用对象的`__dict__`属性进行转换:
```python
json_people = json.dumps([p.__dict__ for p in people])
```
这种方法更直观,但缺乏灵活性,特别是在需要对序列化过程进行更多控制时。
### 处理非ASCII字符
默认情况下,`json.dumps()`会将非ASCII字符转义为`\uXXXX`形式。如果希望保留原始字符,可以设置`ensure_ascii=False`:
```python
json_data = json.dumps(data, ensure_ascii=False)
```
### 格式化输出
为了使生成的JSON字符串更具可读性,可以使用`indent`参数进行美化输出:
```python
json_data = json.dumps(data, indent=4)
```
### 将结果写入文件
除了将JSON字符串保存在内存中外,还可以直接将其写入文件:
```python
with open('output.json', 'w') as f:
json.dump(data, f)
```
该操作会将`data`变量的内容序列化并写入到`output.json`文件中,若文件已存在则覆盖其内容[^3]。
---
阅读全文
相关推荐


















