我使用gdata python模块中的一些Crypto模块在GAE上使用2.5。我能够在字符串上使用hashAndSign,但该函数返回一个'B'无符号字符的array.array。
我还在尝试将它们整合在一起,但我现在磕磕绊绊的一件事就是:
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')发送到我的客户端应用程序,希望能够用它来验证我签名的字符串。
答案 0 :(得分:2)
如果由于某种原因,.tostring()方法不可用 - 这让我觉得这个数组与通常的array.array不同,因为.tostring()至少可以追溯到{{ 3}} - 然后
>>> 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'
应该有用。
答案 1 :(得分:0)
或只是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'
答案 2 :(得分:0)
你的问题标题“array 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中实际尝试了什么?结果是什么?将完整堆栈跟踪和错误消息复制/粘贴到您的问题编辑中。