如何根据用户输入更改api调用目标?(python)
我有以下API调用点:如何根据用户输入更改api调用目标?(python),python,python-3.x,bots,telegram,Python,Python 3.x,Bots,Telegram,我有以下API调用点: iostCall = "https://min-api.cryptocompare.com/data/price?fsym=IOST&tsyms=USD,JPY,EUR" 我想连接来自我的电报用户(IOST)的输入 这是我目前编写的,但我必须对每个api调用进行硬编码 def test (bot, update, args): params = { 'fsym' : fsym } testCall = "https
iostCall = "https://min-api.cryptocompare.com/data/price?fsym=IOST&tsyms=USD,JPY,EUR"
我想连接来自我的电报用户(IOST)的输入
这是我目前编写的,但我必须对每个api调用进行硬编码
def test (bot, update, args):
params = {
'fsym' : fsym
}
testCall = "https://min-api.cryptocompare.com/data/price"
testJson = requests.get(testCall, params=params)
testOut = testJson
update.message.reply_text(testOut)
这就是向电报api发送命令的原因。基本上,我的脚本等待用户调用/测试(输入硬币名称)。。。例如:/测试btc
dp.add_handler(CommandHandler("test", test, pass_args=True))
将其发送给我的用户。您可以做的是,传递一个将具有该值的新参数。这样,您可以每次更改参数,而不是硬编码。例如:
def iost(bot, update, fsym, tsym):
params = {
'fsym' : fsym,
'tsyms' : tsym
}
iostCall = "https://min-api.cryptocompare.com/data/price"
iostCallJson = requests.get(iostCall, params=params).json()
iostOut = iostCallJson
update.message.reply_text(iostOut)
iost(bot= bot, update= update, fsym='IOST', tsyms='USD,JPY,EUR')
currences=input('输入您的货币(用空格分隔)')。split()
my user使用电报聊天的输入定义fsym=。return self.callback(dispatcher.bot,update,**可选参数)TypeError:test()缺少1个必需的位置参数:“fsym”是错误iget@toBePythonNinja你能把你的更新代码作为一个编辑发布吗?我改变了一些东西,使之成为我要做的更多检查。我将添加一个新的edit@toBePythonNinjaargs是变量吗?是的,在这种情况下,args随用户输入而变化。def test是当我的用户/测试(然后他们在此处放置arg以类似api信息中的硬币,如iost是api中的原始端点)我希望我的用户输入编辑此端点调用时调用的函数。