【SQlite3】”Cannot operate on a closed database.” と出る時の対処法

症状

conn = sqlite3.connect(dbname) cur = conn.cursor() cur.execute('select * from XXXX where post_content=?;', (post_contain_plane_format,)) conn.commit() cur.close() conn.close()
Code language: JavaScript (javascript)

Python3でSQLite3を操作中、ProgrammingError:"Cannot operate on a closed database."と表示される。

対策

閉じたデータベースでは操作できません、ということらしい。

確認したら、try-except文の分岐内でconn.close()を使用していた。
VSでコード複製してたら間違えてとっちゃってたみたい。。

解決方法は主に以下の二通りで、

conn.cursor()

でデータベースをオープンな状態に戻すか、

conn.close()
Code language: CSS (css)

の削除ですね。

sqlite3.connectは、なるべくスクリプトの最後でのみ閉じるようにしましょう。

以上、”Cannot operate on a closed database.”エラーの解決方法でした。

まる。

Python歴3年のフルスタックエンジニア兼ブロガー兼ヨギー。大学は心理学、趣味はヨガ。
名刺・HP制作やハタヨガレッスンやってます。

まる。をフォローする

Pythonの新着記事一覧

【Selenium】SessionNotCreatedExceptionエラーが出た時の対処法
【SQlite3】”Cannot operate on a closed database.” と出る時の対処法
【初心者にオススメ】プログラミング言語Pythonで出来ること6選!
Pythonでランダムな時間(乱数)を生成させる方法
【randomモジュールに強くなる】
Pythonファイル実行時にERROR:network_service_instance_impl.cc(426)] Failed opening SSL key log fileと出た時の対処法
タイトルとURLをコピーしました