【问题标题】:Python3 string conversion issuePython3字符串转换问题
【发布时间】:2017-07-12 03:58:06
【问题描述】:

我有一个函数:

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

我很困惑。有什么帮助?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-25
      • 2015-10-24
      • 2019-05-05
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多