我定义了一个函数:
def findbasecoin(Ticker):
mycursor.execute(f"SELECT `param_basecoin`.`Symbol` FROM `param_asset` INNER JOIN `param_pair` ON `param_asset`.`id_pair` = `param_pair`.`pair_id` INNER JOIN `param_basecoin` ON `param_pair`.`Coin2_id` = `param_basecoin`.`basecoin_id` WHERE `param_asset`.`Ticker` LIKE '{Ticker.lower()}';")
for result in mycursor:
result = result[0]
当我打印(result)时,我得到了预期的答案:基础货币
我从另一个地方调用这个函数:
message= json.loads(message)
print(str(datetime.datetime.now()) + ": ")
print(message)
if message['e'].lower()=='zzztrade' :
basecoin = findbasecoin(message['s'])
print(basecoin)
forex_calc_list = {'v_usd' : 'USD', 'v_eur' : 'EUR', 'v_gbp' : 'GBP'}
for x in forex_calc_list:
mycursor.execute(f"SELECT `Rate` FROM `param_forex` WHERE `Coin` LIKE '{basecoin}' AND `Basecoin` LIKE '{forex_calc_list[x]}'")
for result in mycursor:
print(result[0])
当我打印(basecoin)时,结果是空的!为什么?
3条答案
按热度按时间ulydmbyx1#
def findbasecoin函数没有返回值,这就是basecoin为None的原因。
vybvopom2#
尝试添加return语句
我不清楚为什么你要循环
mycursor
中的值,每次都修改结果。只返回最后一个结果令人满意吗?如果没有,您可能需要修改上面的代码。
v1uwarro3#
这是因为你的函数没有返回值。另外,你在循环时改变了循环变量,你的缩进是错误的,你的查询容易被SQL注入。对于最后一个问题,试着使用准备好的语句。