yangyue012345 2023-09-02 09:46 采纳率: 20%
浏览 8
已结题

python一维数组和二维数组插入数据库

我现在有一个二维数组,一个一维数组(对应数据库中的一列),我想要分别将他们插入数据库,目前二维数据可以插入,但是一维数组插入的时候不是从数据库的第一行开始插入,而是从尾部插入。下面是相关代码,不知道要怎么修改了

def init_db(dbpath):
    sql = '''
         create table lndz
        (id integer primary key autoincrement,
        datetime date,
         date date,
         time text ,
         dongjing numeric,
         beiwei numeric,
         zhenzhong text,
         zhenji numeric
         )
 '''  # 创建数据表
    conn = sqlite3.connect(dbpath)
    cursor = conn.cursor()
    cursor.execute(sql)
    conn.commit()
    conn.close()


def savedb(datalist, dbpath):
    init_db(dbpath)
    conn = sqlite3.connect(dbpath)
    cur = conn.cursor()

    for i, row in enumerate(datalist):
        cur.execute('INSERT INTO lndz (date, time, dongjing, beiwei,zhenzhong, zhenji) VALUES (?, ?, ?, ?, ?, ?)', row)
        conn.commit()
    cur.close()
    conn.close()


def savetime(data1d, dbpath):
    conn = sqlite3.connect(dbpath)
    cur = conn.cursor()

    for item in data1d:
        cur.execute('INSERT INTO lndz (datetime) VALUES (?)', (item,))
        conn.commit()

    cur.close()
    conn.close()


if __name__ == '__main__':
    datalist = shaixuan()
    timelist = get_time()
    dbpath = "lndz.db"
    savedb(datalist, dbpath)
    savetime(timelist, dbpath)
    print("成功")

img

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-09-02 09:57
    关注

    cur.execute('INSERT INTO lndz (datetime) VALUES (?)', (item,))
    你这个是把日期全部插入到datatime列里面了
    如果你希望分别插入data time后面那些,你得模仿上面一行sql那样去写。
    你可能理解错了“插入”
    对于数据库来说,添加一行数据才叫做“插入”
    而如果是将数据添加到现有行的空白处,这个叫做“修改”(UPDATE)
    而且,为了更新到正确的行,你的表设计也不对,你得先添加一列作为主键(唯一列)
    然后才能去更新某一行。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月5日
  • 创建了问题 9月2日

悬赏问题

  • ¥100 关于python拓展屏使用pyautogui.screenshot无法截图的问题
  • ¥15 有偿求答 无导出权限怎么快速导出企业微信微文档
  • ¥15 求解答,怎么数码管中这么加入闹钟或者传感器,这应该怎么加入相应的代码
  • ¥15 scottplot5
  • ¥30 想问问这个建模怎么编程没有思路
  • ¥15 关于imageENview(ImageEN)中新建图层并根据鼠标位置添加图标
  • ¥100 用两台电脑局域联网进行MT5的EA参数优化,但是连接不上,日志提示:
  • ¥15 FastAPI报错: AsyncSession不是有效Pydantic类型
  • ¥50 这Mac系统提示虚拟内存不足,怎么解决
  • ¥15 Rs232电路无法收发数据,求帮助