mysqlclientのプレースホルダでIN句を使う

PythonのmysqlclientでIN句を使う方法を調べました。
import MySQLdb

connection = MySQLdb.connect(
    host='localhost',
    user='root',
    passwd='',
    db='mydatabase',
    charset='utf8'
)
cursor = connection.cursor()

try:
    sqlstr = '''
SELECT
    id
   ,name
  FROM mytable
WHERE
'''
    ids = ['1', '3']
    format_strings = ','.join(['%s'] * len(ids))
    where_string = " id IN(%s)" % format_strings
    sqlstr = sqlstr + where_string

    cursor.execute(sqlstr, ids)
    print(cursor._executed.decode('utf-8'))

    print('-------------')
    for row in cursor.fetchall():
        print(row)

except MySQLdb.Error as e:
    print(e)
python sql_where_in.py

SELECT
    id
   ,name
  FROM mytable
WHERE
 id IN('1','3')
-------------
(1, 'taro')
(3, 'jiro')
クエリ文字列を組み立てるときに、フォーマット文字列にIN句に入れる配列分フォーマット文字列を入れて、配列をバインドしています。