Python 3.x TypeError:需要类似字节的对象,而不是';str';对于Geniatager?
我试图在python中使用Geniatager执行分块,这需要使用git clone下载 按照说明,我下载并安装了Geniatager,并将其导入到我的应用程序中 但是,当我尝试访问解析功能时,会出现以下错误Python 3.x TypeError:需要类似字节的对象,而不是';str';对于Geniatager?,python-3.x,typeerror,Python 3.x,Typeerror,我试图在python中使用Geniatager执行分块,这需要使用git clone下载 按照说明,我下载并安装了Geniatager,并将其导入到我的应用程序中 但是,当我尝试访问解析功能时,会出现以下错误 --------------------------------------------------------------------------- TypeError Traceback (most recent call
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-867eea8ac07f> in <module>
1 my_bytes = "This is a pen.".encode()
2 print(type(my_bytes))
----> 3 x = tagger.parse(my_bytes)
~/anaconda3/envs/systreviewclassifi/lib/python3.6/site-packages/geniatagger_python-0.1-py3.6.egg/geniatagger.py in parse(self, text)
33 results = list()
34
---> 35 for oneline in text.split('\n'):
36 self._tagger.stdin.write(oneline+'\n')
37 while True:
TypeError: a bytes-like object is required, not 'str'
目前,我将上述给定的错误作为输出。从技术上讲,这应该是输出
>>> print tagger.parse('This is a pen.')
[('This', 'This', 'DT', 'B-NP', 'O'), ('is', 'be', 'VBZ', 'B-VP', 'O'), ('a', 'a', 'DT', 'B-NP', 'O'), ('pen', 'pen', 'NN', 'I-NP', 'O'), ('.', '.', '.', 'O', 'O')]
我将非常感谢您的帮助。代码似乎与Python 3不完全兼容 您传入一个编码为字节的字符串,但是(
用于文本中的单行。拆分('\n')
)变量text
的类型是bytes,而.split()
('\n'
)的参数是字符串。这导致了错误
您可以在解释器中复制错误,如下所示:
>>> 'asdasd'.encode().split('d')
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>'asdasd'.encode().split('d'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:需要类似字节的对象,而不是“str”
您可以尝试在
tagger.parse()
中输入字符串而不是字节,但不知道这是否可行。代码似乎与Python 3不完全兼容
您传入一个编码为字节的字符串,但是(用于文本中的单行。拆分('\n')
)变量text
的类型是bytes,而.split()
('\n'
)的参数是字符串。这导致了错误
您可以在解释器中复制错误,如下所示:
>>> 'asdasd'.encode().split('d')
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>'asdasd'.encode().split('d'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:需要类似字节的对象,而不是“str”
您可以尝试在
tagger.parse()
中输入字符串而不是字节,但不知道这是否可行。将其作为字符串传递时,它会再次返回此错误。TypeError:bytes-like对象是必需的,而不是'str'。我觉得这也很可疑,因为split是在字符串上执行的。将其作为字符串传递时,它会再次返回此错误。'TypeError:bytes-like对象是必需的,而不是'str'。我觉得这是阴暗的,因为分裂是对一个字符串执行。