【问题标题】:Error "an expected string or bytes-like object error"错误“预期的字符串或类似字节的对象错误”
【发布时间】:2020-06-20 21:22:28
【问题描述】:

以下是我在 jupyter notebook 中使用的代码。但是,运行代码时出现一个错误。你能帮我调试一下错误吗?

def split(string, delimiters= [" ","_",":"], maxsplit=0):
    regexPattern = '|'.join(map(re.escape, delimiters))
    string = re.sub('\d','',string)
    string = re.sub(r'\W+', ' ', string)
    string = camel_case_split(string)
    str_spl = re.split(regexPattern, string, maxsplit)
    return [x for x in str_spl if x != '' and len(x)>1 and x not in beast_labels and x.lower() not in stopwords]
         
documents['split_doc'] = documents['BrandMetric'].apply(lambda x: split(x))
documents['split_clean'] = documents['BrandMetric'].apply(lambda x: split(x))

错误:- 预期的字符串或类似字节的对象错误。

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    此错误表明 string 应该是 strbytes 对象,但事实并非如此。如果您的 documents["BrandMetric"] 列中有一个列表而不是文本,就会发生这种情况。

    所以,要解决这个问题,您可以在 split() 方法的开头添加这一行:

    def split(string, delimiters= [" ","_",":"], maxsplit=0):
        if type(string) == list:
            string = " ".join(string)
        regexPattern = '|'.join(map(re.escape, delimiters))
        ...
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 2020-11-19
      • 2020-08-24
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多