python写批量insert代码
时间: 2023-07-10 14:24:29 浏览: 114
在 Python 中,可以使用 SQLalchemy 模块来方便地执行批量插入操作。具体实现过程如下:
1. 导入 SQLalchemy 模块。
```python
from sqlalchemy import create_engine
```
2. 创建数据库连接。
```python
engine = create_engine('postgresql://user:password@host:port/database')
```
这里的 user、password、host、port 和 database 分别为 PostgreSQL 数据库的用户名、密码、主机地址、端口号和数据库名。
3. 创建表格对应的类。
```python
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class Table(Base):
__tablename__ = 'table_name'
id = Column(Integer, primary_key=True)
column1 = Column(String)
column2 = Column(String)
column3 = Column(String)
```
这里的 table_name、column1、column2 和 column3 分别为数据库表格名称、列名。
4. 创建会话对象。
```python
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
```
5. 构建数据列表。
```python
data = [
{'column1': 'value1_1', 'column2': 'value1_2', 'column3': 'value1_3'},
{'column1': 'value2_1', 'column2': 'value2_2', 'column3': 'value2_3'},
...
]
```
6. 执行批量插入操作。
```python
session.bulk_insert_mappings(Table, data)
session.commit()
```
完整的代码示例:
```python
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
engine = create_engine('postgresql://user:password@host:port/database')
Base = declarative_base()
class Table(Base):
__tablename__ = 'table_name'
id = Column(Integer, primary_key=True)
column1 = Column(String)
column2 = Column(String)
column3 = Column(String)
Session = sessionmaker(bind=engine)
session = Session()
data = [
{'column1': 'value1_1', 'column2': 'value1_2', 'column3': 'value1_3'},
{'column1': 'value2_1', 'column2': 'value2_2', 'column3': 'value2_3'},
...
]
session.bulk_insert_mappings(Table, data)
session.commit()
```
这段代码会向名为 table_name 的表格中插入多组数据,每组数据包含 3 个字段,字段值从 data 列表中获取。
阅读全文