weixin_43405952 2025-07-08 19:47 采纳率: 81.8%
浏览 17
已结题

python操作sqlite发生错误,想不出原因。

写了一个数据库操作程序,在测试中发现一个问题。以下是代码:
数据库用的是sqlite.

import sqlite3
def cr(gys,isbn,spmc,jg):
        db=sqlite3.connect("C:\\Users\\Administrator\\Desktop\\ph\\ph.db")
        cur=db.cursor()
        s=f"INSERT INTO {gys} (isbn,spmc,jg) VALUES ({isbn},'{spmc}',{jg})"
        cur.execute(s)
        db.commit()
        db.close()
def cr_row(gys_n,dz):
    dz_n=open(dz,"r",encoding='utf-8')
    while True:
        dz_row=dz_n.readline()
        if dz_row =="":
            break
        else:
            try:
                r=dz_row.split(",")
                cr(gys=gys_n,isbn=r[0],spmc=r[1],jg=r[2])
            except:
                print("重复商品:%s isbn:%s 价格:%s"%(r[0],r[1],r[2]))
    dz_n.close()
gys=input("配送单位:")
wj=input("文件地址:")
cr_row(gys,wj)
print("完成!")

测试的记录:
8181,暗网,18,
8811,诗经,99,
8181,暗网,18,
8821,李,9,
在插入第三和第四行记录的时候触发了错误处理。第三行是重复的记录,触发错误处理是正常的,数据表设置了唯一性约束。但第四行记录不重复啊,为什么也触发错误处理了呢?

  • 写回答

7条回答 默认 最新

  • threenewbee 2025-07-08 23:25
    关注
    except Exception as e:
        print("发生错误:", e)
    这里输出下具体的错误信息看一下
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 7月18日
  • 已采纳回答 7月10日
  • 创建了问题 7月8日