使用Python解析复杂的JSON

亚基尔·莫德海(Yakir mordehay)

我对JSON和Python很陌生,并尝试使用GET请求获得的复杂JSON输出。这是JSON输出的一个示例(这只是其中的一小部分,但原理相同):

{
  "innerSet": [
    {
      "clusterUID": {
        "id": 3585057579401361143
      },
      "rpasState": [
        {
          "rpaUID": {
            "clusterUID": {
              "id": 3585057579401361143
            },
            "rpaNumber": 1
          },
          "status": "OK",
          "repositoryConnectivityStatus": {
            "accessStatus": "OK",
            "multipathingProblems": false
          },
          "remoteRPAsDataLinkStatus": [
            {
              "JsonSubType": "RPAConnectivityStatus",
              "clusterUID": {
                "id": 2671811049708195677
              },
              "entityType": "RPA",
              "connectivityStatus": "OK",
              "rpaUID": {
                "clusterUID": {
                  "id": 2671811049708195677
                },
                "rpaNumber": 1
              }
            }
          ],
         }
      ]
    }
 ]
}

我试图找到打印单个值的最佳方法。例如,我需要“ connectivityStatus”的值。任何帮助都感激不尽。

我能够解析简单的JSON输出。我已经设法获得整个innerSet树:

x = requests.get('website.com)
d = x.json() print (d['innerSet']) 

但是,我不能移到较低的键。例如,获取“ clusterUID”中“ id”键的值:

print (d['innerSet']['clusterUID']['id']) 

导致出现以下错误:TypeError:列表索引必须是整数,而不是str

问候,亚基尔。

r

你可以这样做:

import simplejson as json
data = json.loads(s)
print data['innerSet'][0]['rpasState'][0]['remoteRPAsDataLinkStatus'][0]['connectivityStatus']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章