使用python语言,把批量 Excel 文件中的数据导入 SQLite 数据库(使用 executemany()实现批量数据导入; 通过减少事务提交次数提高速度)。
时间: 2024-12-18 13:26:21 浏览: 4
Python解析excel文件存入sqlite数据库的方法
在Python中,你可以使用pandas库读取Excel文件,然后将数据转换成SQLAlchemy可以处理的对象(比如DataFrame),再使用sqlite3库连接SQLite数据库并运用`executemany()`函数批量插入数据。以下是一个基本步骤的示例:
首先,安装必要的库:
```bash
pip install pandas sqlalchemy pysqlite3
```
然后,你可以这样做:
```python
import pandas as pd
from sqlalchemy import create_engine, Table, MetaData, select
from sqlalchemy.orm import sessionmaker
# 创建一个到SQLite数据库的引擎
engine = create_engine('sqlite:///my_database.db')
# 读取Excel文件
xls = pd.read_excel('batch_files.xlsx')
# 将pandas DataFrame转换为SQLAlchemy表对象
metadata = MetaData()
table_name = 'my_table'
table = Table(table_name, metadata, autoload_with=engine)
# 创建Session对象
Session = sessionmaker(bind=engine)
session = Session()
# 使用executemany()批量插入数据
data_to_insert = table.columns[:] # 获取列名列表作为占位符
insert_query = insert(table).values(data_to_insert) # 构造插入语句
session.execute(insert_query, xls.to_dict(orient='records'))
# 提交事务(如果有必要)
session.commit()
# 关闭连接
session.close()
```
这个例子中,我们将每一行Excel数据转换为字典列表,然后一次性插入到数据库,减少了频繁的事务提交,提高了效率。注意,如果你的数据量非常大,可能会消耗大量内存,这时可以考虑分批插入或者使用其他更高效的批量导入方法。
阅读全文