将变量值传递到for循环中进行查询

问题描述 投票:1回答:1

我有一个由几个查询组成的列表,这些查询由for循环执行。我想提示用户输入将由列表中的第四个查询使用的来源(ilink)。

当在查询中手动定义原点时,脚本运行良好。我尝试了以下所有语法,但都失败了:

cursor.execute(lines, ilink)
cursor.execute(lines, [ilink])
cursor.execute(lines, (ilink))

我还使用在其自己的cursor.execute(query)中定义的每个查询运行脚本,该脚本接受参数,但由于多个游标而没有传递任何结果。

import MySQLdb
ilink = raw_input("Choose and ilink to query (include 199N):" )
db = MySQLdb.connect(host="host",user="user",passwd="pass")
queries = [
"""USE monthly_audit;""",
"""DROP TEMPORARY TABLE IF EXISTS monthly_audit.tmp_order_ids;""",
"""DROP TEMPORARY TABLE IF EXISTS monthly_audit.tmp_internalselect;""",
"""CREATE TEMPORARY TABLE monthly_audit.tmp_order_ids AS
(SELECT DISTINCT order_id AS orders
FROM ng_tradeserver_db_history.fix_execution_reports_201906
WHERE FROM_UNIXTIME(TIMESTAMP/1000000) >=  '2019-06-19 16:59:59'
AND FROM_UNIXTIME(TIMESTAMP/1000000) <= '2019-06-20 23:59:59'
AND TargetCompID = %s);""",]
cursor = db.cursor()
for lines in queries:
    lines.split(",")
    cursor.execute(lines, [ilink])
results = cursor.fetchall()

**这只是sql的相关代码段,总查询超过500行*

我希望脚本运行查询集并返回要存储在csv中的查询结果。我目前在执行时遇到以下错误:_mysql_exceptions.ProgrammingError:并非在格式化字符串时转换了所有参数]

我有一个由几个查询组成的列表,这些查询由for循环执行。我想提示用户输入将由列表中的第四个查询使用的来源(ilink)。 ...

python mysql-python
1个回答
0
投票

我不确定我是否理解您的问题正确,但是您可以尝试使用fstrings。我相信引号会导致字符串格式化过程中出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.