我有一个 excel 文件,我正在尝试将其放入 mysql 中。我想使用 python 插件 xlrd 提取 32 个字段并放入 mysql。数据布局如下:
我的方法是遍历行和列,边走边添加字段名。代码添加了字段名称,但添加数据时出现错误。(我创建了表 'OilProvedReservesHistory',索引为唯一字段):
def get_data_from_sheet(sheet_index, table, start_row, end_row, end_col):
for row in range(start_row - 1, end_row - 1):
for col in range(end_col):
cell = sheet.cell(row,col)
if col == 0:
fieldname = cleanup_field(cell.value)
if fieldname != ("Blank Cell"):
sql = "ALTER TABLE OilProvedReservesHistory ADD %s VARCHAR(20)" % fieldname
c.execute(sql)
else:
data = cleanup_data(cell)
if data != ("Blank Cell"):
postToMySQL(data,fieldname,table)
def postToMySQL(data,fieldname,table):
#Generate sql query string
sql = "INSERT INTO " + table + " ("+ fieldname + ") VALUES %s"
c.execute(sql, data)
# Executes: ("""INSERT INTO OilProvedReservesHistory (US) VALUES 36.533""")
table = create_table_from_sheet_name()
sheet_index = 0
start_row = 5
end_row = 68
end_col = 32
get_data_from_sheet(sheet_index, table, start_row, end_row, end_col)
我得到的错误是:
_mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的 ''36.533'' 附近使用的正确语法")
你能帮我搞定这个工作吗?非常感谢!