如何在Python循环中将第二个值附加到字典中的现有键上

时间:2019-07-17 20:24:26

标签: python python-3.x dictionary

我正在使用金融中的API,该API会在每次特定时间间隔(即每30分钟)结束时自动更新。它会输出一个时间戳以及一个Open,High,Low和Close值。该API的幕后情况比我的薪水高一点,因此我正在尽力整理数据以适应我的需求。

当前,当我们更新两个不同的市场(这将产生两个不同的收盘价)时,似乎一次只能访问一个市场值。

这是我的代码,每当添加一个新栏时,它将以Timestamp作为键来打印关闭值。

def append(self, bar):
    symbols = symbol = ['CLE', 'RBE']
    bar_keys = ['Open', 'High', 'Low', 'Close']
    self.newest_bar = {key: getattr(bar, key) for key in bar_keys}
    self.bars[bar.Timestamp] = self.newest_bar

    # this is the line that i'd edit to append to the dictionary self.closes
    self.closes[bar.Timestamp] = bar.Close


    print(self.closes)

问题是我想将所有东西都放在一个地方。所以:

我如何从中获取输出:

{2019-07-17 15:11:00+00:00: 56.3}
{2019-07-17 15:11:00+00:00: 1.8719}

对此:

{2019-07-17 15:11:00+00:00: 56.3, 1.8719}

或者更好,如果我可以将每个符号作为键与每个时间步的值嵌套在一起:

{2019-07-17 15:11:00+00:00: 'CLE':56.3, 'RBE':1.8719}

1 个答案:

答案 0 :(得分:0)

您可以做的就是将值设为一个列表,例如:

self.bars.setdefault('mykey', []).append('first_value') #  {'mykey': ['first_value']}
self.bars.setdefault('mykey', []).append('other_value') #  {'mykey': ['first_value', 'other_value']}

说明:

dictionary.setdefault(keyname, value)
  

value:可选。   如果密钥存在,则此参数无效。   如果密钥不存在,则此值将成为密钥的值   默认值无