sqlalchemy 批量导入
时间: 2023-08-29 17:12:02 浏览: 193
你可以使用 SQLAlchemy 的 `session.bulk_insert_mappings()` 方法来实现批量导入数据。
首先,你需要定义一个映射类,将数据库表的结构映射到 Python 对象。例如,假设你有一个名为 `User` 的表,其中包含 `id`、`name` 和 `age` 字段,你可以定义一个映射类如下:
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
```
接下来,你可以使用 `session.bulk_insert_mappings()` 方法批量插入数据。这个方法接受一个字典的列表作为参数,每个字典代表一行数据。例如,你有一个名为 `users_data` 的列表,其中包含多个字典表示不同用户的数据,你可以这样使用 `bulk_insert_mappings()` 方法批量插入:
```python
from sqlalchemy.orm import sessionmaker
# 创建数据库会话
Session = sessionmaker(bind=engine)
session = Session()
# 待插入的数据
users_data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
# 批量插入数据
session.bulk_insert_mappings(User, users_data)
# 提交事务
session.commit()
# 关闭会话
session.close()
```
以上代码将会批量插入 `users_data` 中的用户数据到 `users` 表中。
注意:在使用 `bulk_insert_mappings()` 方法前,你需要确保数据库连接已经建立,并且映射类已经正确定义。
阅读全文