我目前正在尝试将.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(现在是免费的)
收到这些数据答案 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