2017-12-18 133 views
1

数据搜索了很多,我认为在我刚才的答案的一半我的问题 当我有一个JSON响应就是这个样子Python的JSON得到响应

{ 
    "queryResponse": { 
     "@last": 3, 
     "@first": 0, 
     "@count": 4, 
     "@type": "ClientDetails", 
     "@requestUrl": "https://1.1.1.1/webacs/api/v2/data/ClientDetails?userName=contains("usertest")", 
     "@responseType": "listEntityIds", 
     "@rootUrl": "https://1.1.1.1/webacs/api/v2/data", 
     "entityId": [ 
      { 
       "@type": "ClientDetails", 
       "@url": "https://1.1.1.1/webacs/api/v2/data/ClientDetails/236551459", 
       "$": "236551459" 
      }, 
      { 
       "@type": "ClientDetails", 
       "@url": "https://1.1.1.1/webacs/api/v2/data/ClientDetails/267361256", 
       "$": "267361256" 
      }, 
      { 
       "@type": "ClientDetails", 
       "@url": "https://10.141.1.29/webacs/api/v2/data/ClientDetails/370079361", 
       "$": "370079361" 
      }, 
      { 
       "@type": "ClientDetails", 
       "@url": "https://1.1.1.1/webacs/api/v2/data/ClientDetails/501402176", 
       "$": "501402176" 
      } 
     ] 
    } 
} 

因为我想获得一个列表@url但我刚才已经能够得到ENTITYID

json_obj = response.json() 
object = json_obj['queryResponse'] 
entityId = object['entityId'] 
print(entityId) 

,我不能从ENTITYID打印,但我不能得到公正的每场场@url。任何帮助将非常感激。

+0

基本上你需要循环到entityId并获取特定对象来读取和访问它的索引。 –

回答

1
for entity in entityId: 
    print(entity["@url"]) 
1

由于在这里键值对被返回,所以你应该逐一解析每一个。

import json 
from pprint import pprint 

json_obj = response.json() 

entityId = json_obj['queryResponse']['entityId'] 

for _ in entityId: 
    pprint(_['@url']) 

希望这会有所帮助。 :)

+1

如果你真的要使用循环变量,不要使用'_'作为循环变量。 –

+0

谢谢,COLDSPEED,我是python的新手。只是很好奇,我可以知道为什么不推荐使用_? –

+0

当您想要“扔掉”循环变量时(即,如果您不打算在循环体中使用它),将使用'_'。 –