我想要做的是在用户使用命令时发送一条消息
/cotizacion
该消息应如下所示:
Ultima Actualizacion: content[fecha]
Compra: content[compra]
Venta: content[venta]
Variacion: content[variacion]
我不能做的是:
我已经尝试过使用或+进行的所有操作,但是由于我是Python的新手,我真的迷失了。
from telegram.ext import Updater, InlineQueryHandler, CommandHandler
import requests
import re
def get_cotizacion():
content = requests.get('https://mercados.ambito.com/dolar/oficial/variacion').json()
fecha = content['fecha']
compra = content['compra']
venta = content['venta']
variacion = content['variacion']
cotizacion = (fecha+ compra+ venta+ variacion)
return cotizacion
def cotizacion(bot, update):
cotizacion = get_cotizacion()
chat_id = update.message.chat_id
bot.send_message(chat_id=chat_id, text= cotizacion)
def main():
updater = Updater('#######')
dp = updater.dispatcher
dp.add_handler(CommandHandler('cotizacion',cotizacion))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
答案 0 :(得分:0)
我只知道python,所以我只能告诉您如何从json构建字符串,因为我对电报机器人一无所知。我假设内容是字符串(如果不是,则可能需要将其转换)
您可以这样做:
cotizacion = "Ultima Actualizacion: " + content[fecha] + \n + "Compra: " + ...
\ n代表换行符,+将多个字符串加在一起
您可以使用str(my_number)将数字等转换为字符串-如果您的json返回的不是字符串,则可能有帮助 尽管它不能与列表一起使用,所以请检查您的数据类型。
如果您不想像这样硬编码,则可能要使用这样的字典: { “ Ultima Actualizacion”:“ fecha”, “ Compra”:“ compra”, ... }
也许有更好的解决方案,但这是我想到的第一个=)
答案 1 :(得分:0)
您可以在新行中使用“ \ n”。因此您的代码可能像这样。
cotizacion = '\n'.join('Ultima Actualizacion: ' + fecha, 'Compra: ' + compra, 'Venta: ' + venta, 'Variacion: ' + variacion)