前提・実現したいこと
python3,sqlite3で
カラムがひとつのデータベースを
作っている初心者ですが、
どこをどう直せばいいのか分かりません
発生している問題・エラーメッセージ
OperationalError Traceback (most recent call last) <ipython-input-36-45f0daea7b06> in <module> 5 date = ('YYYY-MM-DD') 6 date_tuple = tuple(date) ----> 7 c.execute(sql_date, date_tuple) 8 conn.commit() OperationalError: near ")": syntax error
該当のソースコード
import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute('create table date (date text)')
conn.commit()
sql_date = 'insert into date values (?,)'
date = ('YYYY-MM-DD',)
c.execute(sql_date, date)
conn.commit()
python3
試したこと
)を外したり,を取ってみたりしました。
補足情報(FW/ツールのバージョンなど)
jupiter notebook とatomの併用
> )を外したり,を取ってみたりしました。
というのは、当然
sql_date = 'insert into date values (?,)'
の)や,のことですよね?
その通りです。
手元で試しましたが、SQL文のカンマを除去した場合、エラーは出ず正常に動作しました。
とりあえず、エラーメッセージだと「date = 'YYYY-MM-DD'」と書かれている一方、ソースコードだと「date = ('YYYY-MM-DD',)」と書かれているなど、エラーメッセージとソースコードに不整合が見られます。
エラーの出る状態のソースコードとエラーメッセージを正しく提示し直してください。
また、必要かもしれないので、実行環境の情報も提示してください。
返信ありがとうございます。 お返事いただいた後sqlの(?,)の , を外して試したところ,こちらでもうまくいきました。後エラーメッセージは「date = ('YYYY-MM-DD',)」が正しいです、すみません。 sql文(?)はタプルの形では無いのでしょうか? 使っているのはjupyter notebookの方です。
> sql文(?)はタプルの形では無いのでしょうか?
他の方の回答にもありますが、SQLの勉強をしてください。
Python と SQL は全くの別物です。
それから、解決したなら質問を解決済みにしてください。
どうも親切にありがとうございます。
回答1件
あなたの回答
tips
プレビュー