Tôi không quen thuộc với mysql-connector, nhưng hoạt động của nó có vẻ là tương tự như MySQLdb về vấn đề này. Nếu điều đó đúng, bạn cần sử dụng một chút định dạng chuỗi:
sql = """SELECT avg(downloadtime) FROM tb_npp where date(date) = %s
and substring(host,6,3) in ({c})""".format(
c=', '.join(['%s']*len(dc)))
args = ['2013-07-01'] + dc
cursor3.execute(sql, args)