Python - 按dict的dict值的值对dics列表进行排序

Oz *_*lom 3 python sorting list quicksort

我有一个如下所示的列表:

persons = [{'id': 11, 'passport': {'id': 11, 'birth_info':{'date': 10/10/2016...}}},{'id': 22, 'passport': {'id': 22, 'birth_info':{'date': 11/11/2016...}}}]
Run Code Online (Sandbox Code Playgroud)

我需要通过子键的子键 - 他们的birth_info日期对人员列表进行排序.

我该怎么办?谢谢

kek*_*coh 6

该函数sorted()提供了key参数.可以定义一个callable,它返回键来比较项目:

sorted(persons, key=lambda x: x['passport']['birth_info']['date'])
Run Code Online (Sandbox Code Playgroud)

参数x是给定人员列表中的项目.

如果日期是字符串,您可以使用该datetime模块:

sorted(persons, key=lambda x: datetime.datetime.strptime(x['passport']['birth_info']['date'], '%m/%d/%Y'))
Run Code Online (Sandbox Code Playgroud)