2013-03-06 14 views
5

私はすなわち、このような何か使用して、私はJSONメッセージを含むファイルを読み込むことによって得た辞書の配列を持っている...Python:2つのフィールドでdictsの配列を並べ替える方法は?

のPythonに幾分新しいです:、各JSONメッセージが

import json 
ws = [] 
with open('messages.txt', 'r') as f: 
    for line in f: 
     data = json.loads(line) 
     ws.append(data) 

をしています「日付」と「タイプ」と「場所」の3つのフィールドがあります。私は配列を最初に日付順にソートする必要があります。次に、同じ日付の各ブロック内の型別に、同じ型の各ブロック内の位置順にソートする必要があります。どうやってやるの?多くのThx!

+0

これを試してください:http://stackoverflow.com/questions/1143671/python-sorting-list-of-dictionaries-by-multiple-keys/1144405#1144405 – hughdbrown

+0

ここでは必要ではありませんが、Pythonのソート[安定](http://wiki.python.org/moin/HowTo/Sorting/#Sort_Stability_and_Complex_Sorts)。 –

答えて

9
ws.sort(key=lambda datum: (datum['date'], datum['type'], datum['location'])) 

タプルは最初に最初の要素で、次に後続要素で自然にソートされます。

関連する問題