TypeError:expected string or bufferの解決方法

1150 ワード

今日は爬虫類のシナリオを書いている最中にTypeError:expected string or bufferのエラーに遭遇して、忘れないように整理しました.
これは主にアクセスするタイプのエラーです.例えば、次のコードです.
f = open('a url')
new = f.read()
derp = re.findall(r'
    (.*?)
', new) line = derp def striphtml2(data): p = re.compile(r'\d') return p.sub(' ', data) new = striphtml2(line) #removes anything in <> def striphtml(data): p = re.compile(r'<.>') return p.sub(' ', data) ninja = striphtml(new)
エラーの原因は主にここでnew=striphtml 2(line)で、lineは文字列ではなく文字列リストで、typeで見るとわかります.また、正則的な使用に注意してください.中にはパターン列と一致する列が必ず文字列タイプでなければなりません.エラーの原因は実はタイプエラーで、strに変換してから避けることができます.