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

Sou*_*eep 2 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')}]
Run Code Online (Sandbox Code Playgroud)

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')}]
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

JRa*_*zor 5

您输入的日期有误: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
Run Code Online (Sandbox Code Playgroud)