我正在使用金融中的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}
答案 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:可选。 如果密钥存在,则此参数无效。 如果密钥不存在,则此值将成为密钥的值 默认值无