2016-07-12 10 views
1

複数のJSONオブジェクトを含むJSON応答がある場合、Pythonを使用してJSON内の特定のオブジェクトをどのように引き出すのですか?Pythonの応答から特定のJSONオブジェクトを読み取る

たとえば、次のJSON応答では、3つのオブジェクトがあります。

{ 
"_links": { 
    "base": "REDACTED", 
    "context": "", 
    "self": "REDACTED" 
}, 
"limit": 20, 
"results": [ 
    { 
     "_expandable": { 
      "ancestors": "", 
      "body": "", 
      "children": "", 
      "container": "", 
      "descendants": "", 
      "extensions": "", 
      "history": "/rest/api/content/198121503/history", 
      "metadata": "", 
      "operations": "", 
      "space": "/rest/api/space/ReleaseNotes", 
      "version": "" 
     }, 
     "_links": { 
      "self": "REDACTED", 
      "tinyui": "/x/HxjPCw", 
      "webui": "UNIQUE_URL_HERE" 
     }, 
     "id": "198121503", 
     "status": "current", 
     "title": "Unique Title of Content", 
     "type": "page" 
    }, 
    { 
     "_expandable": { 
      "ancestors": "", 
      "body": "", 
      "children": "", 
      "container": "", 
      "descendants": "", 
      "extensions": "", 
      "history": "/rest/api/content/197195923/history", 
      "metadata": "", 
      "operations": "", 
      "space": "/rest/api/space/ReleaseNotes", 
      "version": "" 
     }, 
     "_links": { 
      "self": "REDACTED", 
      "tinyui": "/x/k-jACw", 
      "webui": "UNIQUE_URL_HERE" 
     }, 
     "id": "197195923", 
     "status": "current", 
     "title": "Unique Title of Content", 
     "type": "page" 
    }, 
    { 
     "_expandable": { 
      "ancestors": "", 
      "body": "", 
      "children": "", 
      "container": "", 
      "descendants": "", 
      "extensions": "", 
      "history": "/rest/api/content/198121203/history", 
      "metadata": "", 
      "operations": "", 
      "space": "/rest/api/space/ReleaseNotes", 
      "version": "" 
     }, 
     "_links": { 
      "self": "REDACTED", 
      "tinyui": "/x/8xbPCw", 
      "webui": "UNIQUE_URL_HERE" 
     }, 
     "id": "198121203", 
     "status": "current", 
     "title": "Unique Title of Content", 
     "type": "page" 
    } 
], 
"size": 3, 
"start": 0 

}

どのように応答して、特定のオブジェクトのIDとタイトルを検索することができますか?

他のスレッドでは、json.loads(your_json)を使用すると辞書になります。その場合、辞書として保存されている場合、このデータをどのように取得するのですか?

更新

私は多分、私が見ていないんだか、これを明確に説明するように、明確にしましょう。

すべてを循環させる唯一のオプションはありますか? 2番目のJSONオブジェクトを取得してIDとタイトルを返すというオプションはありませんか?その場合、カスタムオブジェクトを作成して、各JSONオブジェクトから必要な項目を配列内に格納してから、配列内の各オブジェクトにアクセスできますか?

+0

私は本当にこれをplussed人わからないんだけど、あなたの質問は、「どのように私は 'dict'からのものにアクセスできますか? "これはPythonの標準的な導入がカバーする*基本的な情報です。 – jpmc26

答えて

1

応答をjsonに変換した後は、キー属性を使用できます。

for result in data['results']: 
    print("id: {}, title: {}".format(result['id'], result['title'])) 

前述のとおり、json.loadを使用して文字列を辞書に変換できます。しかし、requestsライブラリを使用している場合は、response.jsonを使用して必要な形式のデータを取得してください。

0

ストリングをjsonオブジェクトにロードした後に、キーにアクセスするためにブラケット記法を使用します。結果キーをループちょうどこのように、あなたがしたいオブジェクトを見つけるまで:

j = json.loads(your_json) 

for r in j["results"]: 
    if r["title"] == "Something": 
     print(r["id"]) 
     print(r["title"]) 
+2

これは辞書がどのようにPythonで動作するかではありません。 –

+0

チルブロ私はまだそれをきれいにしていなかった。このコードは私がそれをテストして動作します。 – CamJohnson26

関連する問題