이런 종류의 문제를 처리하는 데 어려움을 겪고 있습니다. 데이터베이스에서 읽은 데이터가 다시 읽 힙니다. 나는 accoutingdate에 정렬하고 싶다. 그러나 accoutingdate가 null 일 수 있습니다.파이썬에서 날짜 필드 정렬, 필드가 null 일 수 있습니다.
results = sorted(results, key=operator.itemgetter('accountingdate'), reverse=True)
을하지만,이 폭탄 : 저는 현재 다음과 같은 일을 오전 : 때문에 널 (null) 인 일부 accoutingdates에 "형식 오류는 NoneType에 datetime.date을 비교할 수 없습니다."
이것을 처리하는 "가장 정확한"또는 "가장 평범한"방법은 무엇입니까? 모든 날짜 개체보다 작은 것으로
def nonecmp(a, b):
if a is None and b is None:
return 0
if a is None:
return -1
if b is None:
return 1
return cmp(a, b)
results = sorted(results, cmp=nonecmp, ...)
이 취급 None
:
'없음'은 어디에서 분류됩니까? 먼저? 마지막? 가운데 어딘가에? '없음'은 날짜와 비교할 때 무엇을 의미합니까? 2001 년 12 월 7 일 이전이나 이후에 '없음'입니까? –
필자는 모든 유효한 날짜를 "이전"으로 None을 정렬하는 것이 좋습니다. – Wes
Btw, 당신은 장소에서 목록을 정렬 할 수 있습니다 :'results = sorted (results, ...)'단순히'results.sort (...) ' –