我正在创建一个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 回答
我真的认为你需要对Python做一些介绍 .
您正在犯两个基本错误:连续循环 cells 但将 row 传递给查询;传递复杂对象而不是本机Python类型,如整数或字符串 .
以下是你想要的东西:
注意,execute执行序列(元组或列表)作为第二个参数 .