为什么我的python文件会这样?

这次的报错信息是:
Traceback (most recent call last):
File "nb.py", line 47, in
cursor.execute(sql, (istr1,istr2))
sqlite3.OperationalError: near ",": syntax error

放代码:

# coding=utf-8
import sqlite3 as s

gnlb=['1','2','3','4','5']
istr1=''
istr2=''

while True:
    gn=input('功能:')
    if gn in gnlb:
        break
    print('没有这个功能,请重新输入。')

try:
    con=s.connect('hey.db')
    cursor=con.cursor()
    if gn=='1':
        sql = 'SELECT id_1, id_2 FROM Hello_world'
        cursor.execute(sql)
        result_set=cursor.fetchall()
        for row in result_set:
            print('ID1:{0},ID2:{1}'.format(row[0],row[1]))
    elif gn=='2':
        istr1=input()
        istr2=input()
        sql='INSERT INTO Hello_world (id_1, id_2) VALUES (?, ?)'
        cursor.execute(sql, (istr1, istr2))
        con.commit()
        print('成功')
    elif gn=='3':
        istr1=input()
        sql='SELECT id_1, id_2 FROM Hello_world WHERE id_1 = ?'
        cursor.execute(sql, (istr1,))
        result_set = cursor.fetchall()
        for row in result_set:
            print('ID1:{0},ID2:{1}'.format(row[0],row[1]))
    elif gn=='4':
        istr1=input()
        sql = 'DELETE FROM Hello_world WHERE id_1 = ?'
        cursor.execute(sql, (istr1,))
        con.commit()
        print('成功')
    elif gn=='5':
        istr1=input()
        istr2=input()
        n_istr1=input()
        n_istr2=input()
        sql = 'UPDATE Hello_world SET id_1=?, id_2=? WHERE id_1=?, id_2=?'
        cursor.execute(sql, (n_istr1,n_istr2,istr1,istr2))
        con.commit()
except s.Error as e:
    print('报错:{}'.format(e))
    if not gn=='1':
        con.rollback()
except:
    print('失败')
finally:
    if cursor:
        cursor.close()
    if con:
        con.close()

求解!

为什么你的报错信息和代码对不上

img

但你贴的代码里第47行不是cursor.execute(sql, (istr1,istr2))

到底是你乱放代码还是我写的代码提取有问题,我开始怀疑自己了