OperationalError: unrecognized token: “:“

我在使用python中的sqlite3库时,向数据库插入数据时出现OperationalError: unrecognized token: ":"这个错误

#3.2保存数据
def saveDataDB(dbpath,datalist):
    init_db(dbpath)#创建数据库
    conn = sqlite3.connect(dbpath)
    cursor = conn.cursor()
    for data in datalist:
        for i in data:
            i = '"' + i +'"'#内容用""包裹 
        sql = '''
            insert into movie250(
            info_link,pic_link,cname,ename,score,rated,instroduction,info)
            values(%s)'''%",".join(data)
        #print(sql)  #打印检验sql
        cursor.execute(sql)    
        conn.commit()
    cursor.close()
    conn.close()

进行sql的打印,才发现sql内容根本每用""包裹。

https://movie.douban.com/subject/1292052/,肖申克的救赎,  The Shawshank Redemption,9.7,2157152

马上把嵌套的for变量i改为了data的下标。

#3.2保存数据
def saveDataDB(dbpath,datalist):
    #init_db(dbpath)#创建数据库
    conn = sqlite3.connect(dbpath)
    cursor = conn.cursor()
    for data in datalist:
        for index in range(len(data)):
            data[index] = '"' + data[index] +'"'#内容用""包裹 
        sql = '''
            insert into movie250(
            info_link,pic_link,cname,ename,score,rated,instroduction,info)
            values(%s)'''%",".join(data)
        print(sql)  #打印检验sql
        cursor.execute(sql)    
        conn.commit()
    cursor.close()
    conn.close()

然后解决了

"https://movie.douban.com/subject/1292052/","肖申克的救赎","  The Shawshank Redemption","9.7","2157152"

总结:
引起这个错误很有可能是忘记把sql里的内容用""包裹(因为insert语句这里输入的是字符串),我这里其实是考虑了的,但却因为data的重新赋值这里出了点问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值