【发布时间】:2015-08-20 11:06:51
【问题描述】:
我正在尝试使用 SQLite 和 Python 将五个变量写入数据库中的表。下面是我的代码和我得到的错误:
代码:
cur.execute("CREATE TABLE IF NOT EXISTS " + table_name + " (Date real, Morning_5AM_9AM real, Day_9AM_6PM real, Evening_6PM_10PM real, Night_10PM_5AM real)") # this works
export_row= p_transpose.iloc[ii] # Note: p_transpose is the transpose of a DataFrame I read in from Excel
date_object= p_transpose.iloc[ii,0] # date_object is a string here
date_object= date_object.replace('_','')
export_date= int(date_object) # to insert into database table as int instead of string
export_morning= p_transpose.iloc[ii,1]
export_day= p_transpose.iloc[ii,2]
export_eve= p_transpose.iloc[ii,3]
export_night= p_transpose.iloc[ii,4]
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
available_tables=[item[0] for item in cur.fetchall()] # assigns a list of all table names in database
for iii in range (0, row_count):
if (re.match('\w*'+df_feeder, available_tables[iii])):
relevant_table= available_tables[iii]
cur.execute("INSERT INTO " + relevant_table + "VALUES (?,?,?,?,?)" (export_date, export_morning, export_day, export_eve, export_night))
最后一行出现错误:
TypeError: 'str' 对象不可调用
我已经确定export_... 变量中没有一个包含字符串,所以字符串必须是relevant_table。但是,创建一个使用字符串变量的表(再次参见上面的代码)工作正常,所以我不明白为什么它现在给出这个错误。
任何意见将不胜感激。让我知道是否有任何其他信息有用。
编辑:
这是我的回溯,使用 traceback.format_exc():
'Traceback (most recent call last):\n File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/idlelib/run.py", line 112, in main\n seq, request = rpc.request_queue.get(block=True, timeout=0.05)\n File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/Queue.py", line 176, in get\n raise Empty\nEmpty\n'
最终编辑,已解决:
有关信息,感谢 scytale,现在可以使用:
cur.execute("INSERT INTO " + relevant_table + " VALUES (?,?,?,?,?)", (export_date, export_morning, export_day, export_eve, export_night))
我以为我已经尝试以各种可能的方式更改标点符号和间距,但这最终成功了。
【问题讨论】:
-
请显示更多的堆栈跟踪 - 您省略了告诉我们代码中的哪一行导致错误的部分
-
当然 - 我已根据您的评论进行了编辑并添加了一些细节。如前所述,错误是由代码的最后一行引起的。除此之外,您还有什么特别想知道的吗?
-
请添加更多的堆栈跟踪 - 这只是一个好习惯 - 在您的代码中添加注释并不是那么好
-
你的堆栈跟踪是指输出吗?
-
谷歌“python stacktrace”
标签: python database sqlite dataframe