python中postgresql写批量insert代码
时间: 2024-02-05 13:04:33 浏览: 104
在 Python 中,可以使用 psycopg2 模块来与 PostgreSQL 数据库进行交互,并且可以使用 psycopg2 的 executemany() 方法来实现批量插入操作。具体实现过程如下:
1. 导入 psycopg2 模块。
```python
import psycopg2
```
2. 创建数据库连接。
```python
conn = psycopg2.connect(host='host', port='port', dbname='database', user='user', password='password')
```
这里的 host、port、database、user 和 password 分别为 PostgreSQL 数据库的主机地址、端口号、数据库名、用户名和密码。
3. 创建游标对象。
```python
cur = conn.cursor()
```
4. 构建 INSERT INTO 语句。
```python
sql = 'INSERT INTO table_name (column1, column2, column3, ...) VALUES (%s, %s, %s, ...)'
```
这里的 table_name、column1、column2 和 column3 分别为数据库表格名称、列名。
5. 构建数据列表。
```python
data = [
('value1_1', 'value1_2', 'value1_3', ...),
('value2_1', 'value2_2', 'value2_3', ...),
...
]
```
6. 执行批量插入操作。
```python
cur.executemany(sql, data)
conn.commit()
```
完整的代码示例:
```python
import psycopg2
conn = psycopg2.connect(host='host', port='port', dbname='database', user='user', password='password')
cur = conn.cursor()
sql = 'INSERT INTO table_name (column1, column2, column3, ...) VALUES (%s, %s, %s, ...)'
data = [
('value1_1', 'value1_2', 'value1_3', ...),
('value2_1', 'value2_2', 'value2_3', ...),
...
]
cur.executemany(sql, data)
conn.commit()
```
这段代码会向名为 table_name 的表格中插入多组数据,每组数据包含多个字段,字段值从 data 列表中获取。注意,当需要插入的数据较多时,可能需要对数据进行分批处理,以避免一次性插入过多数据导致性能下降。
阅读全文