我整个周末都被困在这个问题上,有人可以帮帮我吗?
我试图解析嵌套的JSON响应。我似乎无法返回我需要的值,我只是得到关于&#34的错误;字符串索引必须是整数"每当我试图解析它......
我想要实现的是:对于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']中执行" for元素:print element"声明,它正确打印available_projects列表。如何使用该输出深入研究JSON中的一个级别?
任何帮助或代码片段都会令人惊叹 - 谢谢!!
答案 0 :(得分:1)
您可以使用字典对象中的 keys method 来获取密钥,然后迭代以获取所需的值。
示例:强>
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