Не работает sorted для отправки в телеграм
Есть код, который выводит список новостей в телеграм:
import datetime
from aiogram import Bot, Dispatcher, executor, types
from config import token
bot = Bot(token=token)
dp = Dispatcher(bot)
@dp.message_handler(commands="all_news")
async def get_all_news(message: types.Message):
with open("news_dict.json", encoding='utf-8') as file:
news_dict = json.load(file)
for k, v in sorted(news_dict.items()):
news = f"{datetime.datetime.fromtimestamp(v['article_date_time'])}\n" \
f"{v['article_title']}\n" \
f"{v['article_desc']}\n" \
f"{v['article_url']}"
await message.answer(news)
if __name__ == "__main__":
executor.start_polling(dp)
Пример news_dict:
"3283072": {
"article_date_time": 1629140023.0,
"article_title": "По результ...",
"article_url": "ссылка",
"article_desc": "Следова..."
},
Эта строка не работает - "for k, v in sorted(news_dict.items()):" В телеграмме выводит только 1 новость, без нее все в разброс не по дате.
Ответы (1 шт):
Автор решения: Feel Richi
→ Ссылка
Если кому будет полезно, первый момент:
for k, v in sorted(news_dict.items()):
news = f"{datetime.datetime.fromtimestamp(v['article_date_time'])}\n" \
f"{v['article_title']}\n" \
f"{v['article_desc']}\n" \
f"{v['article_url']}"
Выводилась одна новость, убрал слеш, пошли все новости:
news = f"{datetime.datetime.fromtimestamp(v['article_date_time'])}\n{v['article_title']}\n{v['article_desc']}\n{v['article_url']}"
Второй момент, новости не шли за последний час, как я понял проблема была лишь во времени. Нужно было просто дольше ждать, под конец посты почему-то шли медленно...