我想說這裏還有其他的東西。我使用Python 2和3運行以下代碼(儘管對於Python 2,我只用2秒的time.sleep進行測試),並且它工作正常。
import sqlite3, time
conn = sqlite3.connect('example.db')
# Set up table (adding because doing nothing with database didn't cause the error)
c = conn.cursor()
c.execute('CREATE TABLE tweets (tweet text)')
conn.commit()
tweets = ['a','b','c']
for x in tweets:
print('Tweet: ',x)
conn = sqlite3.connect("example.db")
# Extra stuff to try make it error
c = conn.cursor()
c.execute('INSERT INTO tweets VALUES (?)', x)
conn.commit()
conn.close()
time.sleep(1800) #30 minutes
# Cleanup so I can run test a few times
conn = sqlite3.connect("example.db")
c = conn.cursor()
c.execute('DROP TABLE tweets')
我能得到這個代碼生成,如果我在註釋掉conn
分配for循環您收到同樣的錯誤。
來源
2014-09-27 03:30:28
Ben
它可能更好(並且更高效/沒有bug)只是偶爾執行'conn.commit()' – matsjoyce 2014-09-26 18:12:08
在完成之前,不需要關閉數據庫連接。 – 2014-09-26 18:12:14
@MartijnPieters,看看睡眠。我想他不想在接下來的30分鐘內保持連接。 – user3885927 2014-09-26 18:13:13