我有这个示例 json
数据,它是来自 POST
请求的响应 - response
是下面示例 的名称>json
数据变量:
{
"statusCode": "OK",
"data": [
{
"id": -199,
"result": {
"title": "test1",
"group": "test_grp2"
}
},
{
"id": -201,
"result": {
"title": "test2",
"group": "test_grp2"
}
}
]
}
现在我想做的是形成一个列表列表
,其中每个列表都有id
、title
和group来自上述
值。我的代码如下所示:json
数据的
def get_list():
# code to get the response from POST request
json_data = json.loads(response.text)
group_list = []
if json_data['statusCode'] == 'OK':
for data in json_data['data']:
print(data)
for result_data in data['result']:
title = result_data['title']
group = result_data['group']
group_list.append([data['id'],title,group])
return(group_list)
当我执行此命令时,我收到错误,因为在 title = result_data['title]
行,列表索引必须是 int 而不是 str
。我怎样才能形成上面的列表?
最佳答案
data['result']
在您的情况下是一个字典。当您使用 for result_data in data['result']
对其进行迭代时,您将获得键 - 换句话说,result_data
是一个字符串,并且不支持字符串索引.
相反,您的意思是:
for data in json_data['data']:
result_data = data['result']
title = result_data['title']
group = result_data['group']
或者,您也可以使用 list comprehension :
group_list = [(data['id'], data['result']['title'], data['result']['group'])
for data in json_data['data']]
print(group_list)
关于python - 在 python 中访问 json 列表中的嵌套 json 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726824/