我试图从我的MySQL中选择一个值数组而不使用for循环。 for循环需要很长时间,我想一次获取所有值。我不知道我的论点有什么问题,我很难解释收到的错误信息是什么意思。
zipcode = ["37204", "60964", "60068"]
connection = MySQLdb.connect(host="localhost", user="root", passwd="password", db="database", cursorclass=MySQLdb.cursors.SSCursor)
cursor = connection.cursor()
query = "SELECT fips FROM us WHERE zip = %s"
cursor.executemany(query,zipcode)
results = cursor.fetchall()
错误如下所示:
query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting
感谢任何帮助。
答案 0 :(得分:0)
Python不是我的强项,我以前没有使用过executemany,但我认为它不应该被用来执行那些应该返回某些东西的代码。您可能希望在查询中使用IN。
query = "SELECT fips FROM us WHERE zip IN ('%s')" % "','".join(zipcode)
cursor.execute(query)
results = cursor.fetchall()