2017-11-27 5 views
-2

関数がJSONリスト(応答)、場所(現時点では無関係)、tripIdArraytrip_idの数字を持つ配列で、'responses'のリストと比較する必要がある) 文字列として'time'が最初の要素であるリストを返します。私は'time'でリストをソートする必要があります。アライリストベースの時間インデックスJSONをソートしますか?

どうすればいいですか?ここに私のコードです。

def formMachine(responses, location, tripIdArray): 
    predictionArray = [] 
    for response in tripIdArray: 
     tripIdExists = False 
     while (tripIdExists != True): 
      for resp in responses: 
       if (resp["trip_id"] == response): 
        predictionArray.append({'time': resp["arrival_time"], 
              'location': location, 
              'trans': 'sample data', 
              'key': resp["trip_id"]}) 
        tripIdExists = True 
    return predictionArray 

時間は24時間制(なし午前または午後)、例えば"04:18:00"でフォーマットされています。

+2

'list.sort'と' sorted'は、ソートに関連する部分(ここでは 'time''の値)をソートして返す項目の中から抽出する関数となる' key'パラメータをとります実際のソート関数に渡します。 –

+1

@ juanpa.arrivillagaありがとう、私はそれを修正しました。 –

+1

https://docs.python.org/3/howto/sorting.html – wwii

答えて

0

これで十分です:

sortedPredictionArray = sorted(predictionArray, key=lambda d:d['time']) 

あなたの配列は、辞書の配列であるためです。 keyルーチンは、ソートに使用する辞書要素を取得します。

+0

ありがとう、これは働いた! – devOpGuy

関連する問題