以下の作品:
>>> 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)