Python-编写一个循环,该循环将数据附加到字典词典中,日期是关键值



我正在尝试创建一个字典的字典,其中每个字典的键是dateTime.now(),每个键的值是字典。该字典是从API中拉出的,我正在持续运行循环。看起来像这样:

orders_dict = {}
sleep_time = 1
crypto = 'BTC' #ETH, LTC
x = 0
while x < 5:
try:
    now = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())

    order_book = public_client.get_product_order_book('{}-USD'.format(crypto), level=2)
    # Append to dictionaries
    orders_dict[now] = orders_dict
    x += 1
    time.sleep(sleep_time)
except:
    continue

从理论上讲,这应该有效,但是由于某种原因,当我运行此代码时,每个键的值都被弄乱了:

{'2017-12-06 02:44:57': {...},
 '2017-12-06 02:44:58': {...},
 '2017-12-06 02:45:00': {...},
 '2017-12-06 02:45:02': {...},
 '2017-12-06 02:45:03': {...}}

,当我尝试通过键提取时,它仍然不起作用。感谢您对正在发生的事情的见解以及是否有更好的方法来解决此问题。

您可能需要从collections模块中使用defaultdict,使其易于与嵌套DICT相关的复杂性。

我们定义了字典的默认数据,您可以简单地创建一个新的密钥对,其中键为 now,而值是从API中记录的。(如下)。

>>> from collections import defaultdict
>>> d = defaultdict(dict)
>>> d
defaultdict(<type 'dict'>, {})
>>> now = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
>>> d[now]= { 'book1' : 'author1', 'book2' : 'author2'}
>>> d
defaultdict(<type 'dict'>, {'2017-12-06 04:11:02': {'book1': 'author1', 'book2': 'author2'}})
>>>

最新更新