2016-10-01 3 views
3

의 값으로 DICS의 목록을 정렬 나는이처럼 보이는 목록을 가지고 :파이썬 - dict`s DICT 값

persons = [{'id': 11, 'passport': {'id': 11, 'birth_info':{'date': 10/10/2016...}}},{'id': 22, 'passport': {'id': 22, 'birth_info':{'date': 11/11/2016...}}}] 

나는 서브 키의 자신의 서브 키에 의해 사람의 목록을 정렬 할 필요가 - 그들의 birth_info 날짜.

어떻게해야합니까? 감사

+1

의 당신은'persons'의'list' 내부에 거기에 도착'dict'가. – metatoaster

+0

맞아요. 제 친구 –

+1

샘플 데이터를 고쳐야합니다. 날짜 문자열을 합법적 인 Python (그리고 합법적 인 JSON)으로 만들기 위해 따옴표를 붙여야합니다. –

답변

6

기능 sorted()key 인수를 제공하십시오. 하나는 항목을 비교하는 키를 반환하는 호출을 정의 할 수 있습니다 :

sorted(persons, key=lambda x: x['passport']['birth_info']['date']) 

인수 X는 사람의 주어진 목록의 항목입니다. 날짜 문자열 인 경우

당신이 datetime 모듈을 사용할 수 있습니다

sorted(persons, key=lambda x: datetime.datetime.strptime(x['passport']['birth_info']['date'], '%m/%d/%Y')) 
+1

정렬 또는 정렬 되었습니까? –

+0

네, 오타되었습니다, 고마워요! – keksnicoh

+0

고마워요! 내 문제를 해결했다. –

2

는이

from datetime import datetime 


print(sorted(persons, key=lambda x: datetime.strptime(x['passport']['birth_info']['date'], "%d/%m/%Y"))) #reverse=True for descending order.