Python sqlite3 を使用して、リスト内の rowid がある sqlite テーブルから選択する — DB-API 2.0 質問する

Python sqlite3 を使用して、リスト内の rowid がある sqlite テーブルから選択する — DB-API 2.0 質問する

以下の作品:

>>> cursor.execute("select * from sqlitetable where rowid in (2,3);")

以下は当てはまりません:

>>> cursor.execute("select * from sqlitetable where rowid in (?) ", [[2,3]] )
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

最初に文字列にフォーマットせずに Python リストを渡す方法はありますか?

ベストアンサー1

残念ながらそうではありません。各値には独自のパラメータ マーク ( ) を付ける必要があります?。引数リストは (おそらく) 任意の長さにすることができるため、文字列のフォーマットを使用して正しい数のパラメータ マークを構築する必要があります。幸いなことに、それはそれほど難しくありません。

args=[2,3]
sql="select * from sqlitetable where rowid in ({seq})".format(
    seq=','.join(['?']*len(args)))

cursor.execute(sql, args)

おすすめ記事