をstr xを型キャストするのを忘れて、cursor.execute()
機能は、あなたの誤差が現れている理由である、int
を返します。
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='',
db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
lst = []
select_query = "select * from users where id = "
ids = ["10", "20", "34", "1"]
for x in ids:
var = select_query + x
# print(var)
cursor.execute(var)
lst.extend(cursor.fetchall())
print(lst)
や辞書など:あなたは1、リスト内の結果のすべてをしたい場合は、
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='',
db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
select_query = "select * from users where id = "
ids = ["10", "20", "34", "1"]
for x in ids:
var = select_query + x
# print(var)
cursor.execute(var)
print(list(cursor.fetchall()))
または、 実際に結果を返すためにfetch functionsのいずれかを使用
そして、それを呼び出すことになるでしょう
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='',
db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
results = {}
select_query = "select * from users where id = "
ids = ["10", "20", "34", "1"]
for x in ids:
var = select_query + x
# print(var)
cursor.execute(var)
results[x] = list(cursor.fetchall())
print(results)
どのような結果が得られましたか?希望の結果はどのように異なっていますか? –
エラーを取得しています - TypeError: 'int'オブジェクトは反復可能ではありません。どこが間違っているのかわからない –
スタックトレースは、エラーが発生した行を示します。この場合、どのラインですか? –