我目前正在尝试将.json文件集成到python中,其中包括来自数据提供者的货币工具信息。 我的目的是能够调用列表项,以便相互比较(如果蜡烛[0]<蜡烛[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接收这些数据(现在是免费的)
json.load
调用为您提供了一个字典,其中包含您粘贴的 JSON 文档的确切结构(JSON 文档是 JSON 对象,解析为字典(如您的示例所示),或 JSON 数组,解析为列表)。
您需要做的就是比较data["candles"][0]["volume"]
和data["candles"][1]["volume"]
以获得您想要的东西。
sorted(data[candles], key=lambda candle:candle[volume])
为您提供按体积升序排序的蜡烛。
如果您只想对其进行排序并将其保存在数据字典中,则只需用新的蜡烛覆盖旧的蜡烛列表即可。
sorted_candles = sorted(data[candles], key=lambda candle:candle[volume])
data[candles] = sorted_candles