【csv改数据库】把只有csv的demo迁移到数据库进行存储

csv文件格式如下: 

user_id,大类编码,大类名称,中类编码,中类名称,小类编码,小类名称,销售日期,goods_id,商品类型,销售数量,销售金额,商品单价,是否促销,cluster轮廓系数,clusterCalinski-Harabasz指数,clusterSilhouette,clusterCalinskiHarabasz
7,20,粮油,2001,袋装速食面,200102,猪肉口味,20150101,DW-2001020021,一般商品,1.0,3.0,3.0,0,0,0,0,0
35,20,粮油,2013,调味酱,201301,番茄酱,20150101,DW-2013010014,一般商品,1.0,6.7,6.7,0,5,5,0,5
10,15,日配,1505,冷藏乳品,150503,冷藏果粒酸乳,20150101,DW-1505030022,一般商品,1.0,5.9,8.9,1,8,8,1,8

数据库用了轻量级的python自带的sqlite:
 

import sqlite3
import csv

# 创建一个SQLite数据库连接
conn = sqlite3.connect('shopping_data.db')
cursor = conn.cursor()

# 创建购物数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS shopping_data (
                    user_id INTEGER,
                    大类编码 INTEGER,
                    大类名称 TEXT,
                    中类编码 INTEGER,
                    中类名称 TEXT,
                    小类编码 INTEGER,
                    小类名称 TEXT,
                    销售日期 TEXT,
                    goods_id TEXT,
                    商品类型 TEXT,
                    销售数量 REAL,
                    销售金额 REAL,
                    商品单价 REAL,
                    是否促销 INTEGER,
                    cluster轮廓系数 INTEGER,
                    clusterCalfskinBarabbas INTEGER,
                    cluster轮廓系数2 INTEGER,
                    clusterCalfskinHarass2 INTEGER
                    )''')

# 从CSV文件中读取数据,并插入到SQLite表中
with open('merged_output.csv', 'r', encoding='utf-8') as file:
    reader = csv.reader(file)
    next(reader)  # 跳过标题行
    for row in reader:
        cursor.execute('''INSERT INTO shopping_data VALUES (?, ?, ?, ?, ?,?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', row)

# 提交更改并关闭连接
conn.commit()
conn.close()

print("数据已成功导入到SQLite数据库中。")

 

测试一下,搞定 

更改相关代码,把之前读取csv格式的方法改成读取文件

def read_data_from_db(db_file):
    con = sqlite3.connect(db_file)
    cur = con.cursor()
    sql = "SELECT * FROM shopping_data"  # Replace 'your_table_name' with the actual table name
    data = pd.read_sql_query(sql, con)
    try:
        cur.execute(sql)
        person_all = cur.fetchall()
        for p in person_all:
            print(p)
    except Exception as e:
        print(e)
        print("false")
    finally:
        cur.close()
        con.close()

    return data

 data部分内容如下:

相关部分需要修改

 即可~

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值