キーにタイムスタンプが含まれている辞書があります。基本的には、そのタイムスタンプで辞書を並べ替える必要があります。 "最初の"タイムスタンプに対応する辞書値を取得できます。キーアンパックエラーで辞書をソート
私が試した:
from __future__ import print_function
from collections import OrderedDict
from datetime import datetime
def _fetch_ts(name):
return datetime.strptime(name[-13:], '%Y%m%d_%H%M')
incoming_dict = {'20170410_1133': 'A', '20170412_1133': 'B'}
print("starting with: {}".format(incoming_dict))
sorted_dict = OrderedDict(sorted(incoming_dict, key=_fetch_ts))
print("gives : {}".format(incoming_dict))
print("should be A or B: {}".format(sorted_dict.values()[0]))
をしかし、それは
starting with: {'20170410_1133': 'A', '20170412_1133': 'B'}
Traceback (most recent call last):
File "test.py", line 13, in <module>
sorted_dict = OrderedDict(sorted(incoming_dict, key=_fetch_ts))
File "/usr/lib/python2.7/collections.py", line 69, in __init__
self.__update(*args, **kwds)
File "/usr/lib/python2.7/_abcoll.py", line 571, in update
for key, value in other:
ValueError: too many values to unpack
だから私はここで間違って何をやっているを出力しますか?
代わりに、キーと値のペアのあなたの並べ替え辞書のキー、。 'sorted(incoming_dict.items()、...)'を使用してください。 – vaultah