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に変換してから避けることができます.