Python 2.7 binascii.unhexlify的奇数长度字符串错误

Python 2.7 binascii.unhexlify的奇数长度字符串错误,python-2.7,binary,binascii,Python 2.7,Binary,Binascii,我正在尝试将ASCII字符串来回转换为其二进制表示形式,如下所示 s=chr(0)*15 + chr(0x01) bst = bin(int(binascii.hexlify(s), 16)) n = int(bst, 2) binascii.unhexlify('%x' % n) 然而,我在最后得到了以下错误,这对我来说没有多大意义 1 binascii.unexlify(“%x”%n) TypeError:奇数长度字符串 问题是什么?我如何解决它?使用python控制台: >>

我正在尝试将ASCII字符串来回转换为其二进制表示形式,如下所示

s=chr(0)*15 + chr(0x01)
bst = bin(int(binascii.hexlify(s), 16))
n = int(bst, 2)
binascii.unhexlify('%x' % n) 
然而,我在最后得到了以下错误,这对我来说没有多大意义

1 binascii.unexlify(“%x”%n)

TypeError:奇数长度字符串


问题是什么?我如何解决它?

使用python控制台:

>>> help(binascii.unhexlify)

unhexlify(...)
    a2b_hex(hexstr) -> s; Binary data of hexadecimal representation.

    hexstr must contain an even number of hex digits (upper or lower case).
    This function is also available as "unhexlify()"
所以误差是一致的。您需要做的是用
'0'
填充一个偶数:

>>> binascii.unhexlify('0%x' % n)
'\x01'
                n = int(wer, 2)

                qqwslenf=len(wer)
                qqwslenf=(qqwslenf/8)*2
                qqwslenf=str(qqwslenf)
                qqwslenf="%0"+qqwslenf+"x"


                jlz=binascii.unhexlify(qqwslenf % n)
                #we convert from binary to ASCII exactly size of need by half bytes.