Python3字符串转换问题

时间:2017-02-22 08:02:47

标签: python string python-3.x type-conversion

我有一个功能:

def push(push):
   ser.write(push + '\r')
   pull = ser.read(11)  
   return pull

我称之为:

out = push("ka " + dp_id + " ff")

事实证明,使用python2非常好,但是当我使用python 3时,我得到了错误:

  

不支持unicode字符串,请编码为字节:' ka 01   FF \ r'

现在,如果我这样做:

out = push(b"ka " + display_id + " ff")

我收到错误:

  

不能将字节连接到str

我很困惑。有什么帮助?

1 个答案:

答案 0 :(得分:5)

问题与push本身无关。你写道:

b"ka " + display_id + " ff"
# ^bytes ^string      ^string

b前缀表示你实际上写了一个字节序列。)

这样就行不通了。您可以字符串编码为带有.encode()的字节数组,并在最后一个字符串上使用b前缀。所以:

b"ka " + display_id.encode() + b" ff"
# ^bytes ^bytes                ^bytes