나는 파이썬으로 목록을 가지고 있습니다.매개 변수 (목록 또는 배열)에 연산자 - python, SQL을 부여합니다.
article_ids = [1,2,3,4,5,6]
I는 다음과 같이 SQL 문에이 목록을 사용해야합니다
SELECT id FROM table WHERE article_id IN (article_ids)
가 어떻게 내 IN()
절에이 목록을 제공 할 수 있습니다 ?
나는 이미 인터넷 검색 방법을 시도했지만, 알아낼 수 없었다.
>> print ids_list
placeholders= ', '.join('?'*len(ids_list)) # "?, ?, ?, ... ?"
query = 'SELECT article_id FROM article_author_institution WHERE institution_id IN ({})'.format(placeholders)
print query
cursor.execute(query, ids_list)
오류 메시지 내가 얻을 :
SELECT article_id FROM article_author_institution WHERE institution_id IN (?)
query = query % db.literal(args)
TypeError: not all arguments converted during string formatting
예를 들어 :
ids_list = [9,10]
placeholders= ', '.join('%'*len(ids_list)) # "?, ?, ?, ... ?"
query = 'SELECT aid FROM article_author_institution WHERE instid IN ({})'.format(placeholders)
print query
cursor.execute(query, ids_list)
출력 및 오류 메시지는 다음과 같습니다
SELECT aid FROM article_author_institution WHERE instid IN (%, %)
Traceback (most recent call last):
File "deneme3.py", line 11, in <module>
cursor.execute(query, ids_list)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
query = query % db.literal(args)
ValueError: unsupported format character ',' (0x2c) at index 61
가능한 중복 http://stackoverflow.com/questions/283645/python- list-in-sql-query-as-parameter) – ksindi