我对 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
问候, 亚基尔。
最佳答案
你可以这样做:
import simplejson as json
data = json.loads(s)
print data['innerSet'][0]['rpasState'][0]['remoteRPAsDataLinkStatus'][0]['connectivityStatus']
关于python - 使用 Python 解析复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32311824/