【问题标题】:JSON dictionaries(?) into Python (Oanda API)将 JSON 字典(?)转换为 Python(Oanda API)
【发布时间】:2014-02-19 21:59:28
【问题描述】:

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

.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

为了比较蜡烛字典变量,我需要做什么?例如,candles[0](带有“volume”:61184 变量)与蜡烛[1](带有“volume”:67528 变量)。我觉得这里缺少一些非常简单的东西。
另外,如果有人好奇,我会从 Oanda 的 API(现在免费)接收这些数据

【问题讨论】:

标签: python json list dictionary


【解决方案1】:

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

您只需比较data["candles"][0]["volume"]data["candles"][1]["volume"] 即可得到您想要的。

【讨论】:

  • 谢谢 Max,这似乎成功了!我知道这是一件我不理解的简单事情。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 2014-02-26
    • 2018-05-04
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多