Python:按 mm/dd/yyyy 日期对 JSON 列表进行排序

标签 python json date

我有来自 MongoDB 游标的数据转储,例如示例:

>>> json_list
[{u'rDate': u'05/04/2009', u'_id': ObjectId('56c20bf2dc5e3753986b5564')},
{u'rDate': u'06/09/2009', u'_id': ObjectId('56c20be5dc5e3753986b5563')},
{u'rDate': u'12/08/2008', u'_id': ObjectId('56c20bf2dc5e3753986b5566')},
{u'rDate': u'12/21/2008', u'_id': ObjectId('56c20bf2dc5e3753986b5565')}]

Python 有没有办法按日期升序对它们进行排序?就像示例中一样,生成的排序列表将是:

>>> json_list
[{u'rDate': u'12/08/2008', u'_id': ObjectId('56c20bf2dc5e3753986b5566')},
{u'rDate': u'12/21/2008', u'_id': ObjectId('56c20bf2dc5e3753986b5565')},
{u'rDate': u'05/04/2009', u'_id': ObjectId('56c20bf2dc5e3753986b5564')},
{u'rDate': u'06/09/2009', u'_id': ObjectId('56c20be5dc5e3753986b5563')}]

我已经查看了大多数相关示例,但它们的日期格式如 "update_time": "1415387875" 这不是我的情况。欢迎任何帮助。

谢谢!

最佳答案

您输入的日期有误:2014 年 2 月 31 日(2 月 31 日)。这是不可能的

您可以像这样对正确的日期进行排序:

from datetime import datetime

json_list = [{'id' : 5461, 'date': '02/14/2009'},
             {'id' : 5217, 'date': '09/25/2002'},
             {'id' : 5913, 'date': '02/28/2014'},
             {'id' : 5132, 'date': '01/07/2005'}]

sorted_date = sorted(json_list, key=lambda x: datetime.strptime(x['date'], '%m/%d/%Y'))
print sorted_date

关于Python:按 mm/dd/yyyy 日期对 JSON 列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35437516/

相关文章:

JSF 页面错误地反射(reflect)了日期 - 1 天偏移

python - 是否可以始终依赖 ctypes.data_as 来保留对临时对象的引用?

python - 如何在 float32 而不是 float64 上强制执行 python float 操作?

python - 有没有更优雅的方法在Python中将整数列表转换为WORD(C_Types)数组

java - 如何从某些 Facebook 页面提取指定日期范围(从和到)的数据?

python - 如何处理python系列中的多种日期字符串格式

python - 通过 Python 中的 c 函数传递和返回 double 组

c++ - FlatBuffers:不支持的 union vector 将 JSON 文件转换为二进制文件时出错

ios - NSURLSession : Get Json from NSURLResponse

php - 无法在 PHP 中将数据库获取到对象内的数组