-2

これがデータベースからのデータです、私は使い果たしました。

policy_id = ((2309L,), (118L,), (94L,))
for i in policy_id:
    print i

しかし、私は次のように結果が欲しい:

p.policy_id in ('%s','%s','%s') %(i[0],i[1],i[2])
#i[0]=2309
#i[1]=118
#i[2]=94

私の英語は苦手です。以前の質問と比べて、私が望むものが得られませんでした。私は初心者です。ご理解ください。

4

1 に答える 1

1

あなたはあなたが望むものを手に入れました。各アイテムから 0 番目の「サブアイテム」を取得できると言われました。したがって、ゼロ番目のアプローチは

c.execute("foo bar blub where p.policy_id in (%s,%s,%s)", (i[0][0], i[1][0], i[2][0]))

別の方法として、最初にタプルを変換することもできます

ii = tuple(x[0] for x in i)
c.execute("foo bar blub where p.policy_id in (%s,%s,%s)", ii)

MySQLdb カーソルに適切にアクセスする方法に関する情報も含まれていることに注意してください。これは、文字列の書式設定ではなく、データを適切にエスケープするためにのdataパラメーターを介して行われます。cursor.execute()

于 2012-05-11T11:38:08.460 に答える