Python requests
モジュールを使用して、RESTful GETをサーバーに送信します。サーバーに対してJSONで応答を取得します。JSON応答は、基本的には単なるリストのリストです。
ネイティブPythonオブジェクトへの応答を強制するのに最適な方法は何pprint
ですか?それを使用して反復または出力できますか?
Python requests
モジュールを使用して、RESTful GETをサーバーに送信します。サーバーに対してJSONで応答を取得します。JSON応答は、基本的には単なるリストのリストです。
ネイティブPythonオブジェクトへの応答を強制するのに最適な方法は何pprint
ですか?それを使用して反復または出力できますか?
回答:
使用できますjson.loads
:
import json
import requests
response = requests.get(...)
json_data = json.loads(response.text)
これにより、指定された文字列が辞書に変換され、コード内でJSONデータに簡単にアクセスできるようになります。
または、@ Martijnの役立つ提案と投票数の多い回答を使用することもできますresponse.json()
。
str()
。一方、Unicodeデータは(将来に備えて)持っておくのは悪くありません。
response.json()
、それはやるとしてより良い仕事に使用するエンコーディングを考え出すのを。(免責事項、私はそのコードのいくつかを書きました)。
response.text()
?
requests.compat.json.loads(resp_text)
を使用しているのでrequests
、応答のjson
メソッドを使用する必要があります。
import requests
response = requests.get(...)
data = response.json()
これは、使用するデコーダを自動検出します。
pip install requests
ただし、debパッケージを使用する代わりにできます。
data
リストのリストか辞書か、今は少し気になります。
data
は、読み取っているJSONの構造を反映しています。たとえば、応答がである場合[{"a": {...}}]
、data
は、を含むリストlist[0] == {'a': {...}}
です。応答がの{"a": "b", "c": "d"}
場合data
は、dictです。それはあなたの質問に答えますか?
>>> import requests >>> r = requests.get('http://httpbin.org/get') >>> r.json <bound method Response.json of <Response [200]>> >>> r.json() {'args': {}, ...}