Просто конвертируйте свою коллекцию в Json, как показано ниже,
$json = $analyticsData4->toJson();
Затем используйте этот пакет jsonq для суммирования / подсчета / размера / перемещения / поиска того, что вы хотите, довольно легко. [ 114]
Например,
$q = new Jsonq('data.json');
$res = $q->from('products')
->where('cat', '=', 1)
->sum('price');
Обратите внимание, что эта простая задача может показаться много работы, но, безусловно, она поможет вам в проекте.
Существует простой способ сделать это с binascii
модуль:
>>> import binascii
>>> print binascii.hexlify("ABCZ")
'4142435a'
Если я не неправильно понимаю что-то об упорядочивании откусывания (высокое откусывание сначала является значением по умолчанию), который должен быть совершенно достаточным!
Кроме того, Python hashlib.md5
объекты имеют a hexdigest()
метод для автоматического преобразования обзора MD5 в ASCII преобразовывает строку в шестнадцатеричную систему, так, чтобы этот метод не был даже необходим для обзоров MD5. Надежда, которая помогает.
В Python Вы используете модуль структуры для этого.
>>> from struct import *
>>> pack('hhl', 1, 2, 3)
'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', '\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>>> calcsize('hhl')
8
HTH
Нет никакого соответствующего "шестнадцатеричного откусывания" кода для struct.pack, таким образом, необходимо будет или вручную упаковать в байты сначала, как:
hex_string = 'abcdef12'
hexdigits = [int(x, 16) for x in hex_string]
data = ''.join(struct.pack('B', (high <<4) + low)
for high, low in zip(hexdigits[::2], hexdigits[1::2]))
Или лучше, можно просто использовать шестнадцатеричный кодек. т.е.
>>> data = hex_string.decode('hex')
>>> data
'\xab\xcd\xef\x12'
Для распаковки можно закодировать результат назад для преобразовывания в шестнадцатеричную систему так же
>>> data.encode('hex')
'abcdef12'
Однако обратите внимание, что для Вашего примера, нет, вероятно, никакой потребности взять распространение в прямом и обратном направлениях через шестнадцатеричное представление вообще при кодировании. Просто используйте md5 двоичный обзор непосредственно. т.е.
>>> x = md5.md5('some string')
>>> x.digest()
'Z\xc7I\xfb\xee\xc96\x07\xfc(\xd6f\xbe\x85\xe7:'
Это эквивалентно Вашему пакету () представление редактора. Для получения шестнадцатеричного представления, использование то же распаковывают метод выше:
>>> x.digest().decode('hex')
'acbd18db4cc2f85cedef654fccc4a4d8'
>>> x.hexdigest()
'acbd18db4cc2f85cedef654fccc4a4d8'
[Править]: Обновленный для использования лучшего метода (преобразовывают кодек в шестнадцатеричную систему),