如何根据用户输入更改api调用目标?(python)

如何根据用户输入更改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

我有以下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://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中的原始端点)我希望我的用户输入编辑此端点调用时调用的函数。