2015-05-30 106 views
-1

我有一個我正在變成Json的位置列表..我需要按照距離對這些位置進行排序,然後將其轉換爲Json列表。在Python中對json進行排序

我在列表遍歷和增加每個位置的陣列,像這樣

locations = [] 

    for location in data: 
     filtered_string = {'distance': location['distance']} 
     locations.append(filtered_string) 

那麼我想他們是這樣排序:

sorted(locations,key=extract_distance, reverse=True) 

def extract_distance(json): 
    try: 
     return int(json['distance']) 
    except KeyError: 
     return 0 
+3

這看起來很合理 - 你在哪裏遇到問題? (除了我沒有在任何地方看到任何實際的JSON) –

+2

有什麼問題? –

+1

那麼你需要在將它轉換成json之前或之後按距離對它們進行排序? 實際問題是什麼?似乎沒有任何。 –

回答

1

嘗試

sorted(locations, key=lambda k: k['distance'], reverse=True) 

如果您希望原始數據完好無損,而不是分開正好距離並假定數據還具有密鑰遠程(這似乎是你使用位置['distance']的情況)

sorted(data, key=lambda k: k['distance'], reverse=True) 
+0

感謝這工作,但我發現我不得不保存它像地點=排序... – Tyler