【问题标题】:TypeError: a bytes-like object is required, not 'str' : Getting this errorTypeError: a bytes-like object is required, not 'str' : 得到这个错误
【发布时间】:2019-09-24 18:25:42
【问题描述】:

出现错误:字节和 str 类型之间的冲突

old_server_uuid = p3.communicate()[0].split("|")[1].strip()

得到以下错误:

Traceback (most recent call last):
  File "create_env_file.py", line 68, in <module>
    data = create_env_source_list(node_name, ip_address)
  File "create_env_file.py", line 14, in create_env_source_list
    raise(ex)
  File "create_env_file.py", line 12, in create_env_source_list
    old_server_uuid = p3.communicate()[0].split("|")[1].strip()
TypeError: a bytes-like object is required, not 'str'

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    Python 3 不允许混合文本 (Unicode) 字符串和字节字符串。

    p3.communicate()[0] 的结果是一个字节串,所以.split 参数也必须是一个。

    示例:

    用 Unicode 字符串分割字节字符串:

    >>> b'abc|123'.split('|')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: a bytes-like object is required, not 'str'
    

    用字节串分割字节串:

    >>> b'abc|123'.split(b'|')
    [b'abc', b'123']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2017-11-04
      • 2018-02-19
      相关资源
      最近更新 更多