解析嵌套的JSON响应Python

灰色

我整个周末都被困住了,有人可以帮我吗?

我正在尝试解析嵌套的JSON响应。我似乎无法返回我需要的值,每当我尝试解析它时,我都会得到关于“字符串索引必须为整数”的错误...

我要实现的目标是:对于JSON中的每个对象,提取available_projects,然后从每个对象中提取available_models。例如,第一个应该是:model001,model_20171004-090552。

样本JSON响应:

{
    "available_projects": {
        "model001": {
            "available_models": [
                "model_20171004-090552"
            ],
            "status": "ready"
        },
        "model002": {
            "available_models": [
                "model_20171013-143108"
            ],
            "status": "ready"
        },
        "model002b": {
            "available_models": [
                "model_20171013-151458"
            ],
            "status": "ready"
        }
}

我的代码:

myText = requests.get('http://localhost:5000/status')
jsonresponse = json.loads(myText.text)


for element in jsonresponse[u'available_projects']:
    for AM in element[u'available_models']: ## this gives me the errors..
        print AM

如果我只是执行“针对jsonresponse [u'available_projects']中的元素:print元素”的语句,它将正确打印出available_projects列表。我如何使用该输出来更深入地研究JSON?

任何帮助,或代码片段都将是惊人的-谢谢!!

拉克什

您可以在字典对象中使用keys方法来获取密钥,然后进行迭代以获取所需的值。

例:

d = {
    "available_projects": {
        "model001": {
            "available_models": [
                "model_20171004-090552"
            ],
            "status": "ready"
        },
        "model002": {
            "available_models": [
                "model_20171013-143108"
            ],
            "status": "ready"
        },
        "model002b": {
            "available_models": [
                "model_20171013-151458"
            ],
            "status": "ready"
        }
    }
}

for i in d["available_projects"].keys():
    print i, "=" , d["available_projects"][i]['available_models'][0]

输出:

model001 = model_20171004-090552
model002b = model_20171013-151458
model002 = model_20171013-143108

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章