JSON词典(?)到Python(Oanda API)

时间:2014-02-19 21:59:29

标签: python json list dictionary

我目前正在尝试将.json文件集成到python中,其中包含来自数据提供者的货币工具信息。我的意图是能够调用列表项,相互比较(如蜡烛[0]< candle [1]:等)。

.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
                }
        ]
}

到目前为止,python阅读器看起来像这样:

#!/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(现在是免费的)

收到这些数据

2 个答案:

答案 0 :(得分:4)

json.load调用为您提供了一个字典,其中包含您粘贴的JSON文档的确切结构(JSON文档是JSON对象,可以解析为dicts(如示例所示))或JSON数组,它们解析为列表)。

您需要做的就是比较data["candles"][0]["volume"]data["candles"][1]["volume"]以获得您想要的内容。

答案 1 :(得分:0)

sorted(data[candles], key=lambda candle:candle[volume])为您提供按体积按升序排列的蜡烛。

如果您只是想订购它并将其保存在数据字典中,您只需要用新的蜡烛覆盖旧的蜡烛列表。

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