Хочу, чтобы я вводил название города и бот отправлял текущую температуру в этом городе.
Для создания бота использую aiogram
Для запроса погоды python-weather
Код написан таким оразом:
import asyncio
import logging
import python_weather
from config import TOKEN2
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.types import Message
bot = Bot(TOKEN2)
dp = Dispatcher()
async def main():
await dp.start_polling(bot)
@dp.message()
async def get_weather(message: Message):
async with python_weather.Client(unit=python_weather.METRIC) as client:
weather = await client.get(message.text)
await message.answer(weather.temperature)
if __name__ == '__main__':
asyncio.run(main())
В этом виде он выдает ошибку:
ERROR:aiogram.event:Cause exception while process update id=372549765 by bot id=6876247750
ValidationError: 1 validation error for SendMessage
text
Причем если вместо вызова
await message.answer(weather.temperature)
я напишу
print(weather.temperature)
, ошибок не будет, и температура будет выведена в терминал.
Я так понимаю проблема именно в этом вызове. Если да, то как будет правильно его написать?