Python 2.5 версия array.array.tostring ()? - PullRequest
2 голосов
/ 15 июня 2011

Я использую 2.5 в GAE, используя некоторые модули Crypto из модулей python gdata. Я могу использовать hashAndSign для строки, но функция возвращает array.array без знака "B" символов.

Я все еще экспериментирую, чтобы собрать все это вместе, но одна вещь, на которую я наткнулся сейчас, это получение:

array('B', [120, 231, 49, 2, 125, 143, 213, 14, 214, 66, 52, 11, 124, 154, 99, 179])

быть строковым представлением типа:

'x\xe71\x02}\x8f\xd5\x0e\xd6B4\x0b|\x9ac\xb3'

Как я могу получить массив в виде такой строки?

Я знаю, что это простая вещь, но это ставит меня в тупик.

Мне это нужно, чтобы я мог сделать .encode ('base64') для отправки в мое клиентское приложение, которое, я надеюсь, сможет использовать его для проверки подписанной мной строки.

Ответы [ 3 ]

2 голосов
/ 15 июня 2011

Если по какой-то причине метод .tostring () недоступен, что заставляет меня думать, что этот массив отличается от обычного array.array, потому что .tostring () был примерно как минимум в далеком python 2.4 - тогда

>>> import array
>>> q = array.array('B', [120, 231, 49, 2, 125, 143, 213, 14, 214, 66, 52, 11, 124, 154, 99, 179])
>>> ''.join(chr(c) for c in q)
'x\xe71\x02}\x8f\xd5\x0e\xd6B4\x0b|\x9ac\xb3'

должно работать.

0 голосов
/ 16 июня 2011

Заголовок вашего вопроса "Python 2.5 версия array.array.tostring ()?" озадачивает Метод tostring() объектов array.array был доступен очень давно:

Python 1.5.2 (#0, Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)] on win32
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import array
>>> q = array.array('B', [120, 231, 49, 2, 125, 143, 213, 14, 214, 66, 52, 11, 124, 154, 99, 179])
>>> q.tostring()
'x\3471\002}\217\325\016\326B4\013|\232c\263'
>>>

В сторону: Да, верно, однажды repr() восьмерично, а не в шестнадцатеричном.

Что вы на самом деле пробовали в Python 2.5? Какой был результат? Скопируйте / вставьте полную трассировку стека и сообщение об ошибке в редактирование вашего вопроса.

0 голосов
/ 16 июня 2011

Или просто array.tostring метод:

>>> a = array.array('B', [120, 231, 49, 2, 125, 143, 213, 14, 214, 66, 52, 11, 1
24, 154, 99, 179])
>>> a.tostring()
'x\xe71\x02}\x8f\xd5\x0e\xd6B4\x0b|\x9ac\xb3'
...