Python字符串替换不起作用(预期字节输入?)

时间:2017-01-11 19:53:32

标签: python string python-3.x replace byte

我正在尝试将Pyner(https://github.com/dat/pyner)用于NER。我给它一串文本来从中提取命名实体。但是我收到了一个错误。我正在附加出现错误的snipet:

for s in ('\f', '\n', '\r', '\t', '\v'): #strip whitespaces
    text = text.replace(s, '')

Error message: {TypeError: a bytes-like object is required, not 'str'}

即使我尝试多种类型的输入(字节对象)

,也会发生此错误
text = b'This'
text = bytes("This".encode('utf-8'))

我认为问题是替换不是正确的输入类型。我使用的是python 3.5。我究竟做错了什么?请帮忙!

1 个答案:

答案 0 :(得分:3)

So long I have: var fL = 0; fL++ unique.forEach(function(data){ fL-- if(fL=0){ for (var h = 0; userIds.length >= h; h++) { if( status[h] == "on"){ for (var k = 0; userIds.length >= k; k++) { if(status[k] == "on" && userIds[h]==userIds[k] && productIds[h]==productIds[k]) { productsOn.push(dataArray[0]); userId = userIds[h]; } } } } } var dataArray = data.split(','); productIds.push(dataArray[0]);userIds.push(dataArray[1]);status.push(dataArray[2]); }); setProductsToUser(productIds,userIds) //where I place this? 适用于replacestr但不能同时使用。

你可以像这样重写它:

bytes

您还可以应用符合for s in (b'\f', b'\n', b'\r', b'\t', b'\v'): #strip whitespaces except space! text = text.replace(s, b'') 类型的strip

bytes

也可以:事先转换回text = text.strip() # remove all of the above + space ,尝试:

str

text = str(text)

(选择最佳解决方案以避免修改第三方软件包,如Patrick所述)