python dictionary datetime as key, keyError

爱⌒轻易说出口 提交于 2019-12-05 02:51:48

Answering your question about datetime as a dictionary key:

Yes, time object of datetime can be used as dictionary key.

Conditions to use an object as a dictionary key:

To be used as a dictionary key, an object must support the hash function (e.g. through __hash__), equality comparison (e.g. through __eq__ or __cmp__)(...)

(Source: DictionaryKeys)

datetime support for cited conditions:

Supported operations:

...

  • hash, use as dict key

(Source: datetime - time Objects)

However, you are getting this exception because dict usage_dict_hourly is empty.

usage_dict_hourly is initiated with {}. So, when you try to look for the element with key time_now in your function constructing_dict, it raises KeyError exception, because that key has not been found.

You aren't actually setting useage_dict_hourly to any value that way, that's your error. You should ideally do something like:

useage_dict_hourly[time_now] = None
date_wise_dict[useage_dict_hourly[time_now]] = data_int

Or, better yet, just use datetime.datetime.now() as the key:

datetime_wise_date[datetime.datetime.now()] = data_int.

This way, there is no possibility of clashes in the value (which is possible - though unlikely - for useage_dict_hourly)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!