Python com Sqlite crud

Sou novo em python gostaria de saber por que o meu delete não funciona.
Obrigado desde já.
:+1:

from PyQt5 import uic,QtWidgets

import sqlite3

from PyQt5.sip import delete

def listar_produtos():

tela_2.show()

banco = sqlite3.connect('banco_cadastro.db')

cursor = banco.cursor()

cursor.execute("SELECT * FROM dados")

dados_lidos = cursor.fetchall()

tela_2.tableWidget.setRowCount(len(dados_lidos))

tela_2.tableWidget.setColumnCount(5)

for i in range(0, len(dados_lidos)):

    for j in range(0, 5):

       tela_2.tableWidget.setItem(i,j,QtWidgets.QTableWidgetItem(str(dados_lidos[i][j])))



banco.close()

def salvar_dados():

id

produto = tela.lineEdit.text()

descricao = tela.lineEdit_3.text()

valor = tela.lineEdit_2.text()

validade = tela.lineEdit_4.text()



try:

    banco = sqlite3.connect('banco_cadastro.db')

    cursor = banco.cursor()

    cursor.execute("CREATE TABLE IF NOT EXISTS dados (produto text,descricao text,valor text, validade text)")

    cursor.execute("INSERT INTO dados VALUES ('"+produto+"','"+descricao+"','"+valor+"','"+validade+"')")

   

    banco.commit()

    banco.close()

    tela.lineEdit.setText("")

    tela.lineEdit_2.setText("")

    tela.lineEdit_3.setText("")

    tela.lineEdit_4.setText("")

    print("Dados inseridos com sucesso!")

except sqlite3.Error as erro:

    print("Erro ao inserir os dados: ",erro)

def delete(id):

try:

    banco = sqlite3.connect('banco_cadastro.db')

    cursor = banco.cursor()

    cursor.execute("SELECT id FROM dados")

    delete = '''DELETE FROM dados WHERE id=?'''

    cursor = banco.cursor()

    cursor.execute(delete, [id] )

    banco.commit()

except:

    print('Erro ao conectar com o banco de dados. função delete')

finally:

    cursor.close()

    banco.close()      

def excluir_dados():

banco = sqlite3.connect('banco_cadastro.db')

linha = tela_2.tableWidget.currentRow()

tela_2.tableWidget.removeRow(linha)

cursor = banco.cursor()

cursor.execute("SELECT id FROM dados")

dados_lidos = cursor.fetchall()

valor_id = dados_lidos[linha][0]

cursor.execute("DELETE FROM dados WHERE id="+ str(valor_id))

app=QtWidgets.QApplication([])

tela=uic.loadUi(“cadastro.ui”)

tela_2 = uic.loadUi(“estoque.ui”)

tela.pushButton.clicked.connect(salvar_dados)

tela.pushButton_2.clicked.connect(listar_produtos)

tela_2.pushButton_3.clicked.connect(delete)

tela.show()

app.exec()