python_在sqlite中创建表并写入表头

python_在sqlite中创建表并写入表头

import sqlite3

def write_title_to_sqlite(tableName,titleList,dataTypeGroupsList,database_path):
    
    conn = sqlite3.connect(database_path)

    # 创建游标
    cursor = conn.cursor()

    #MEMO 长文本
    #create_table_body
    create_table_body = "序号 INTEGER PRIMARY KEY AUTOINCREMENT,\n"
    for title in titleList:
        # 检查标题是否在aa的第一个子列表中
        if title in dataTypeGroupsList[0]:
            field_type = "TEXT(50)"
        # 如果不在第一个子列表中,并且在第二个子列表中,则其类型为"DATE"
        elif title in dataTypeGroupsList[1]:
            field_type = "DATE"
        # 使用字典中的默认类型,确保所有标题都能找到对应的类型
        else:
            field_type = "TEXT(50)"
        
        create_table_body += f"{title} {field_type},\n"

    # 移除最后一个逗号和换行符
    create_table_body = create_table_body.rstrip(",\n")

    create_table_sql = f"""
       CREATE TABLE IF NOT EXISTS {tableName} (
            {create_table_body}
        );
        """
    
    # 首先检查表是否存在,如果存在则删除
    drop_table_query =f"""
    DROP TABLE IF EXISTS {tableName};
    """

    # 执行删除表的命令
    cursor.execute(drop_table_query)

    # 动态生成列名部分
    columns = ", ".join(titleList)
    # 动态生成问号占位符部分,问号数量与titleList长度相同
    placeholders = ", ".join(["?" for _ in titleList])

    # 执行创建表的命令
    cursor.execute(create_table_sql)

    # 提交事务
    conn.commit()

    # 关闭游标和连接
    cursor.close()
    conn.close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值