2014-02-19 52 views
0

我目前正在嘗試將.json文件整合到python中,該文件包含來自數據提供者的貨幣工具信息。我的意圖是能夠打電話給列表項目,以便相互比較(如果蠟燭[0] <蠟燭[1]:等)。Python中的JSON字典(?)(Oanda API)

的以.json文件看起來是這樣的:

{ 
     "instrument" : "EUR_USD", 
     "granularity" : "D", 
     "candles" : [ 
       { 
         "time" : "2014-02-17T22:00:00Z", 
         "openMid" : 1.259445, 
         "highMid" : 1.259955, 
         "lowMid" : 1.251825, 
         "closeMid" : 1.257955, 
         "volume" : 61184, 
         "complete" : true 
       }, 
       { 
         "time" : "2014-02-18T22:00:00Z", 
         "openMid" : 1.257975, 
         "highMid" : 1.259955, 
         "lowMid" : 1.251825, 
         "closeMid" : 1.252945, 
         "volume" : 67528, 
         "complete" : false 
       } 
     ] 
} 

蟒蛇讀者看起來像這樣迄今:

#!/usr/bin/python 

import json 

with open('EURUSD.json', 'r') as eurusd_data: 
    data = json.load(eurusd_data) 

data_string = json.dumps(data) 
print data_string 

我需要什麼,以比較蠟燭字典變量呢?例如,蠟燭[0](具有「音量」:61184變量),蠟燭[1](具有「音量」:67528變量)。我覺得這裏有一些非常簡單的東西。
此外,如果有人好奇,我收到了來自OANDA的API這個數據(也就是現在的自由)

+0

我寧願用pyoanda(https://github.com/toloco/pyoanda) –

回答

4

json.load電話給你和你粘貼的JSON文件的確切結構字典(JSON文件或者JSON對象,解析爲字典(如你的例子)或JSON數組,解析爲列表)。

所有你需要做的就是比較data["candles"][0]["volume"]data["candles"][1]["volume"]得到你想要的。

+0

謝謝最大,似乎做的伎倆!我知道這很簡單,我不理解。 – icehac

0

sorted(data[candles], key=lambda candle:candle[volume])給你按升序排列的蠟燭。

如果您只是想訂購它並將其保存在數據字典中,您只需用新的蠟燭列表覆蓋舊的蠟燭列表即可。

sorted_candles = sorted(data[candles], key=lambda candle:candle[volume]) 
data[candles] = sorted_candles