python - 在python中按日期时间对文件进行排序
问题描述
我有一个电子邮件对象列表。它包含以下格式的 DateTime:
Thu, 17 Dec 2020 15:30:15 +0100
当我尝试使用 sorted() 对列表进行排序时,它仅按时间排序。
sorted_emails = sorted(emails,key=lambda email: email['Date'],reverse=True)
for item in sorted_emails:
print(item['Date'])
输出:
Wed, 16 Dec 2020 21:59:45 +0100
Wed, 16 Dec 2020 21:58:22 +0100
Wed, 16 Dec 2020 12:29:39 +0100
Wed, 16 Dec 2020 12:29:13 +0100
Wed, 16 Dec 2020 12:28:41 +0100
Wed, 16 Dec 2020 12:26:50 +0100
Wed, 16 Dec 2020 12:26:17 +0100
Wed, 16 Dec 2020 12:25:57 +0100
Thu, 17 Dec 2020 15:30:15 +0100
Sat, 12 Dec 2020 21:17:35 +0100
我将如何让它对日期进行排序?
解决方案
您必须解析日期并使用datetime.datetime.strptime
. 尝试这样的事情:
import datetime
dateformat = "%a, %d %b %Y %H:%M:%S %z"
for email in emails:
email['parsed_date'] = datetime.datetime.strptime(email['date'], dateformat)
然后按电子邮件['parsed_date']排序。
有关“格式化指令”的语法,请参见此处https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior
推荐阅读
- javascript - 使用ajax提交后重置表单
- angular - 从 angular2 中的组件中删除填充
- sql-server - SMSS SQL Studio 项目存储在哪个目录中?
- c++ - 模板类的前向声明(访问者设计模式)
- sql-server - SQL Server 如何确定序列中的下一个值?
- machine-learning - 谷歌协作
- java - java错误IO异常
- haskell - 为什么我的子函数调用次数呈指数级增长?
- python-asyncio - 如何决定是否增加 asyncio aiohttp 进程的数量?
- javascript - 在 google map api 中添加我们的 JSON 数据中心