Документация struct
показывает пример распаковки непосредственно в namedtuple
. Вы можете комбинировать это с namedtuple._asdict()
, чтобы получить один всплеск:
>>> import struct
>>> from collections import namedtuple
>>> record = 'raymond \x32\x12\x08\x01\x08'
>>> Student = namedtuple('Student', 'name serialnum school gradelevel')
>>> Student._asdict(Student._make(struct.unpack('<10sHHb', record)))
{'school': 264, 'gradelevel': 8, 'name': 'raymond ', 'serialnum': 4658}
>>>
Если это имеет значение, обратите внимание, что в Python 2.7 _asdict()
возвращает OrderedDict
...