2018年8月23日木曜日

お盆休みに Python スクリプトをいじる (3)

もうお盆休みは終わったんですが、前回のスクリプトを Raspberry Pi 3 上で動かしたら
TypeError: the JSON object must be str, not 'bytes'
というエラーが出て動かない。

Windows10 の Ubuntu 上では動いてたんだがなぁ…ってことでちょっと調べてみた。エラーがでているところがここです。
body = res.read()
data = json.loads(body)
body が str じゃなくて bytes になってるということのようです。bytes から str に変換してやればエラーは解決できそうです。「python bytes str 変換」でググってやり方が見つかりました。
body = res.read()
data = json.loads(body.decode('utf-8'))
こんな感じに直したところエラーは発生しなくなりました。