我是python新手,有一个json响应(见下文)。我想搜索site1
的id值,并列出id的所有值
{ "listSiteResponse" : { "count":4 ,"site" : [ {
"id": "28e4cc3f-d0c2-46f4-9e0c-b532fd148292",
"simpleid": 15,
"name": "Site1",
"description": "Blr1",
"location": "Bangalore1",
}, {
"id": "188d4b47-1955-43e1-82a8-7ccedcfc636b",
"simpleid": 16,
"name": "Site2",
"description": "Blr2",
"location": "Bangalore2",
}, {
"id": "63fab512-4b52-4038-8a3b-4632f1911dca",
"simpleid": 17,
"name": "Site3",
"description": "Blr3",
"location": "Bangalore3",
}, {
"id": "2db3949a-ba2f-4e93-85b5-24a995fa3d99",
"simpleid": 18,
"name": "Site4",
"description": "Blr4",
"location": "Bangalore4",
}
}}
我尝试使用以下脚本列出ID,但出现错误:
from pprint import pprint
json_data=open('logs/CurrentSitesList.txt')
data = json.load(json_data)
test=data["listSiteResponse"]["site"]["id"]
您正在尝试获取
listSiteResponse
的site
的id
,但问题是data["listSiteResponse"]["site"]
不是一个list
,并且您无法获取列表的id
;相反,您可以获取该列表中所有项目的id
,或者仅获取一个项目:在不使用紧凑列表理解语法的情况下,相当于:
但在我看来,列表理解语法的可读性要高得多(当然也要短得多)。你知道吗
此外,当您打开一个文件时,您应该确保它被关闭;因此您可以使用
try-finally
或者更好的方法:p.S.您可能需要阅读PEP8:)
更新:根据OP在评论中的附加评论:
给出了网站列表
您可能希望找到具有给定ID的站点
或者查找与条件匹配的站点ID(概括前面的代码段)
但是在第二种情况下,根据条件,您可能会得到多个结果,因此如果是这样的话,请相应地调整代码。你知道吗
有关更全面的Python教程,请参阅免费提供的书籍Learn Python the Hard Way。你知道吗
相关问题 更多 >
编程相关推荐