结合pandas,sqlite3批量将csv数据导入sqlite数据库

import sqlite3
import pandas as pd
conn=sqlite3.connect(r'demo.db')
c=conn.cursor()

创建新表

c.execute("""
CREATE TABLE equipments (
ID integer primary key autoincrement,
设备状态 text,
设备编码 text,
设备名称 text,
资产编码 text,
所属科目 text,
科目名称 text,
规格型号 text,
出厂日期 text,
出厂编号 text,
验收日期 text,
初次调用 text,
设备原值 text,
借用人 text,
借用办公室 text,
借用科组 text,
借用日期 text,
借用凭证 text)
""")

现在有海量数据存储在csv上,如果我们选择也用python脚本将它批量写入db文件:

s=pd.read_csv('file/demo.csv',encoding='gbk') # 有中文的要解码
dataN,paraN=s.shape
ques='('+'?,'*(paraN-1)+'?)' #cursor.execute中的动态参数表示
for i in range(dataN):
    a=s.iloc[i].values
    b=a[1:]
    t=[int(a[0])]+a[1:]# a的第一个是ID,必须是integer类型,而pd读取的都是string,所以要进行转换
    c.execute('insert into equipments values '+ques,t)
    

最后用HeidiSql查询,导入ok

****附:
python sqlite3查看所有表名和表结构:
select name from sqlite_master where type='table' order by name;

posted @   JohnYang819  阅读(2101)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示