2012-05-11 2 views
-2

여기는 데이터베이스의 데이터입니다.파이썬 튜플을 mysql에

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

내 영어는 내가 원하는 것을 얻을 수 없다, 나는 초보자입니다, 양해 바랍니다 않았다 이전 질문에 비해 좋지 않다 :

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

는하지만 난 같은 결과를 원한다.

답변

1

원하는 것을 얻었습니다. 각 항목에서 0 번째 "하위 항목"을 fethc 할 수 있다고 들었습니다. 그래서 제로 번째 방법은 첫 번째 튜플에게 나뿐만 아니라 제대로 MySQLdb 커서를 액세스하는 방법에 대한 정보를 포함

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

주를 변환 할 수

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

대안이 될 수있다. 문자열 형식 지정을 통해 수행되는 것이 아니며 데이터가 올바르게 이스케이프되도록 cursor.execute()data 매개 변수를 통해 수행됩니다.

관련 문제