THUMBS SHIFT→

このブログは主に親指シフトを用いて書かれています

requestsでUnicodeEncodeErrorがでたけど何でも良いから送信したい時

python のrequestsの話です。

import requests
r = requests.post(url, data=str)
>> UnicodeEncodeError ...

となってしまった時は

r = requetsts.post(url, data=str.encode('utf-8', errors='ignore')

とすればよろしく無い文字を無視してPOSTしてくれる。

これは内部でstr.encode('utf-8')みたいに文字列をバイト列に変換しているためで、最初からdataにバイト列を渡しておけば起こらないのでignoreを指定して無理やりutf-8のバイト列にしている。

ignoreの他にも色々エラーハンドラがあって、 ここ で確認できる。

使用例はこっち