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

时间:2018-08-22 05:41:51

标签: 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://min-api.cryptocompare.com/data/price"
    testJson = requests.get(testCall, params=params)
    testOut = testJson
    update.message.reply_text(testOut)

这就是将命令发送到电报api的原因。基本上,我的脚本会等到用户调用/ test(输入硬币名称)...例如:/ test btc

    dp.add_handler(CommandHandler("test", test, pass_args=True))

将其发送给我的用户。

1 个答案:

答案 0 :(得分:0)

您可以做的是,传递一个具有该值的新参数。这样,您可以每次更改参数,而不是硬编码。例如:

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')