Задать вопрос

Как встроить в бота telegram на python парсинг JSON?

Есть код который достает температуру в городе из JSON запроса, может не самый лучший вариант, но все прекрасно работает.
import requests

city = 'Сочи'

r = requests.get('http://api.openweathermap.org/data/2.5/weather?&units=metric&q=%s&appid=0c9f3c052f1d81b7062750ff0926f345' %(city))
data = r.json()
temp = data["main"]["temp"]
print('Температура в',city , ':', temp, '°C')

Так же есть код телеграм бота на pytelegramapi. При попытке встроить в него код выше, выдает ошибки. Я так понимаю пытается отправить запрос на сервера телеграм и на, что они собственно ругаются.
import telebot
import config
import requests


bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=["start"]) # Обработка /start
def handle_start(message):
    bot.send_message(message.from_user.id, 'Hi! \nMy friend')

@bot.message_handler(content_types=["text"])
def handle_t(message):
    if message.text[:7] == "Погода " or message.text[:7] == "погода " :
            city = message.text[7:]
            r = requests.get('http://api.openweathermap.org/data/2.5/weather?&units=metric&q=%s&appid=0c9f3c052f1d81b7062750ff0926f345<img src="https://habrastorage.org/files/8fa/5f5/313/8fa5f5313b37438eb250b22cf041f2dd.png" alt="image"/>' % (city))
            data = r.json()
            temp = data["main"]["temp"]
            bot.send_message(message.chat.id, 'Температура в ', city, ': ',temp , '°C')

bot.polling(none_stop=True, interval=0)

56a3aa1a50c249d08ed94dfea29de599.png
  • Вопрос задан
  • 4851 просмотр
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
@AlmaShooter Автор вопроса
Решение:
Неправильно использовал функцию bot.send_message. В данном случае нужно писать так
bot.send_message(message.chat.id, "Температура в {}: {} C".format(city, temp))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bot.send_message(message.chat.id, 'Температура в ', city, ': ',temp , '°C')
запятые разделяют аргументы(параметры), и что там за параметры в этой функции?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы