我有一个功能:
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
答案 0 :(得分:5)
问题与push
本身无关。你写道:
b"ka " + display_id + " ff"
# ^bytes ^string ^string
(b
前缀表示你实际上写了一个字节序列。)
这样就行不通了。您可以将字符串编码为带有.encode()
的字节数组,并在最后一个字符串上使用b
前缀。所以:
b"ka " + display_id.encode() + b" ff"
# ^bytes ^bytes ^bytes