申し訳ありませんが、json応答の一部を印刷するための満足のいく答えが見つかりませんでした。誰かここで私を助けてもらえますか:
import json
import requests
import pprint
response = requests.get('<api endpoing>')
json_data = response.json()
print(json.dumps(json_data, indent=4, sort_keys=True))
JSON応答は
{
"Value1": "SomeValue",
"data": {
"subval1": false,
"subval2": "0a4",
"subval3": "",
"subval4": "Click h!",
"subval5": "1002",
"subval6": "932",
"subval7": "i2",
"subval8": 250,
"subval9": 0,
"subval10": 1,
"subval11": 3,
"subval12": 1,
"subval13": "<!>",
"subval14": "",
"subval15": "Click !!",
"subval16": "",
"subval17": 300
},
"error": true,
"message": "Success",
"status": 200
}
ここで、「データ」値のみを走査して印刷したいと思います。私は次のことをします
data = json.loads(json_data)
data_set = (data['data'])
print(data_set)
しかし、エラーは取得しています:TypeError:JSONオブジェクトは 'dict'ではなくstrでなければなりません
既にpython dictであるため、json.loads(json_data)
する必要はありません。このdictを直接出力する必要があります。そして、dictからのjson文字列の出力はjson.dumps()
の仕事:
json.dumps(json_data["data"])
実際にjson()
メソッドはjsonオブジェクトを返すので、json.loads
を使用する必要はありません
または、使用できます
r=requests.get("")
print json.loads(r.content)
JSON Response Content の詳細を参照してください。