ただ、キーが複数あってそれぞれ並び順の指定が降順だったり昇順だったりでけっこう苦労した。
全部昇順、全部降順だったら簡単だったんだけど。
まぁ詳細はコードで。
# -*- coding: utf-8 -*-
from operator import itemgetter
scoreList = [
{'date': '2016-03', 'score': 100, 'subject': 'English'},
{'date': '2016-03', 'score': 70, 'subject': 'Mathematics'},
{'date': '2016-03', 'score': 80, 'subject': 'Japanese'},
{'date': '2015-03', 'score': 90, 'subject': 'English'},
{'date': '2015-03', 'score': 60, 'subject': 'Mathematics'},
{'date': '2015-03', 'score': 70, 'subject': 'Japanese'},
]
print scoreList
# 一般的なやり方だけど、昇順or降順のソートしかできない
sortedList = sorted(scoreList, key=itemgetter('date', 'score'), reverse=True)
print '----------'
print sortedList
# 日付の昇順、点数の降順でソートしたい場合
newSortedList = sorted(scoreList, key=itemgetter('score'), reverse=True) # 先に第二キーでソート
newSortedList = sorted(newSortedList, key=itemgetter('date'), reverse=False) # 第一キーでソート(reverseは省略可)
print '----------'
print newSortedList