代码之家  ›  专栏  ›  技术社区  ›  Laxmikant

Gmail消息,无法拆分消息ID

  •  0
  • Laxmikant  · 技术社区  · 6 年前

    我在读Gmail信息( using the code from accepted answer )

    (retcode, messages) = conn.search(None, '(UNSEEN)')
    if retcode == 'OK':
        for num in messages[0].split(' '): # messages[0] is b'6' in my case.
    

    它抛出了“typeerror:需要像object这样的字节,而不是'str'”。 但我可以清楚地看到它是一个字节对象 b'6'

    在python shell上也尝试了同样的方法,并且在那里也得到了同样的错误。不知道这里出了什么问题。

    >>> b'6'.split(' ')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: a bytes-like object is required, not 'str'
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   lyxal    6 年前

    当它给你 TypeError 是的。 指的是 b'6' …而是指 ' ' 在里面 .split() --它试图用一个字符串拆分一个bytes对象。要解决此问题,只需将行更改为:

    (retcode, messages) = conn.search(None, '(UNSEEN)')
    if retcode == 'OK':
        for num in messages[0].split(b' '): # messages[0] is b'6' in my case.
    

    或者,对于python shell

    >>> b'6'.split(b' ')
    [b'6']