【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年のフルスタックエンジニア&ヨギー。
大学は心理学、趣味はヘルスケア全般。

エンジニア育成コミニュティの運営と、オリジナル名刺・Web制作やハタヨガレッスンやってます。

お仕事の依頼はDMもしくはメールにて。

↓アートとかの趣味アカ。よかったらみて下さい!٩(๑❛ᴗ❛๑)
Insta:@malmal0v0

まる。をフォローする

Pythonの新着記事一覧

STEAM教育とは?特徴と国内外の取り組み事例・実践方法を解説
Anaconda3で「’git’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と出るときの対処法
【OAK-D Lite入門】DepthAIをインストールしてみよう
【Python3】 Anaconda3の環境変数(PATH)を手動で追加する方法(Windows11)
【VScode】PermissionError: [WinError 5] アクセスが拒否されました。と出るときの対処法【Anaconda3】
タイトルとURLをコピーしました