Python 3では、URLからjsonドキュメントを要求しています。
response = urllib.request.urlopen(request)
response
オブジェクトが持つファイルライクオブジェクトread
とreadline
メソッド。通常、JSONオブジェクトは、ファイルをテキストモードで開いて作成できます。
obj = json.load(fp)
私がしたいのは:
obj = json.load(response)
ただし、urlopenはバイナリモードでファイルオブジェクトを返すため、これは機能しません。
回避策はもちろんです。
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
しかし、これは気分が悪い...
バイトファイルオブジェクトを文字列ファイルオブジェクトに変換できるより良い方法はありますか?または、いずれかのパラメータurlopen
またはjson.load
エンコーディングを指定するためのパラメータが不足していますか?