首页 文章

错误绑定参数0 - 可能不支持的类型

提问于
浏览
0

我正在创建一个SQL数据库并尝试迭代excel文件并将所有数据放入SQL表中,如下所示,但我不断收到一个恼人的错误 . 我查看了数据类型,仍然无法理解它,请让我知道是否有人发现问题是我的代码是:

import sqlite3
from openpyxl import load_workbook

#wb = load_workbook(r"LeaguePlayers.xlsx")

#read workbook to get data
wb = load_workbook(filename = r"LeaguePlayers.xlsx", use_iterators = True)
ws = wb.get_sheet_by_name(name = 'Sheet1')
#ws = wb.worksheets



conn = sqlite3.connect("players.db") # or use :memory: to put it in RAM

cursor = conn.cursor()

# create a table
cursor.execute("""CREATE TABLE players
              (player TEXT,
               team TEXT,
               points INTEGER, 
               cost REAL,
               position TEXT) 
           """)


#Iterate through worksheet and print cell contents
for row in ws.iter_rows():
    for cell in row:
        cursor.execute("INSERT INTO players VALUES (?,?,?,?,?)", row)

    conn.commit()

#----------------------------------------
# display SQL data
#----------------------------------------
c.execute('SELECT * FROM players')
for row in c:
    print (row)

我得到的错误说:

cursor.execute(“INSERT INTO players VALUES(?,?,?,?,?)”,row)sqlite3.InterfaceError:错误绑定参数0 - 可能不支持的类型 .

1 回答

  • 1

    我真的认为你需要对Python做一些介绍 .

    您正在犯两个基本错误:连续循环 cells 但将 row 传递给查询;传递复杂对象而不是本机Python类型,如整数或字符串 .

    以下是你想要的东西:

    player = [cell.value for cell in row]
    cursor.execute(query, player)
    

    注意,execute执行序列(元组或列表)作为第二个参数 .

相关问题