2012-06-22 2 views
1

내가 web2py 비교적 새로운 해요, 그리고 이런 종류의 기능에 문제가 갖는이이 오류가 발생오류 사용 람다 정렬

sorted_rows = day_rows.sort(lambda r: r.inspection) 

:

<type 'exceptions.TypeError'> <lambda>() takes exactly 1 argument (2 given) 

day_rows하는 것은 데이터베이스에서 결과입니다 이 경우 20 개의 행을 선택하고 가지고 있습니다.

분명히 뭔가 초급이 빠졌지 만 알아낼 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.

덕분에, 존

답변

3

난 당신이 사전의 목록에 day_rows 변환 추측하고있어 아마도 db(db.mytable).select().as_list() 같은 일을하고, (그래서 더 이상 행이 개체입니다 DAL 없음). 이 경우, 표준 파이썬 list 오브젝트의 sort() 메소드를 호출합니다. 두 번째 인수는 "cmp"이며 두 개의 인수를 취합니다. 당신이 목록으로 day_rows을 유지하려면, 당신은 할 수 있습니다 :

day_rows.sort(key=lambda r: r['inspection']) 

을 그 오히려 새로운 목록을 반환하는 것보다 장소의 목록을 정렬합니다 있지만.

sorted_rows = sorted(day_rows, key=lambda r: r['inspection']) 

이 그렇지 않으면, DAL Rows 개체로 day_rows를두고 원래의 코드가 작동합니다 : 새 목록을 원하는 경우에, 할.

+0

그래, 당신의 제안은 완벽하게 작동했습니다. 이제 돌아가서 DAL 행 개체가 변경된 위치를 파악합니다. 그것은 나에게 즉시 명백하지 않다. 도와 주셔서 대단히 감사합니다. Web2py는 매우 강력합니다. 학습 곡선이 있습니다. – johnz

+0

day_rows가 생성 된 코드와이 코드에서 작동하는 코드를 표시 할 수 있습니까? 'executedql()'을 사용 했습니까? – Anthony

+1

저는 실제로 행을 목록으로 변경하는 작업을 수행했습니다. 오늘 아침에 신선한 모양으로 보았을 때 분명했습니다. 당신의 반응은 제게 맞았습니다. – johnz