我在调用的API中有以下JSON文件:
{
"14500": [
{
"5": {
"versionName": "VersionOne",
"expand": "executionSummaries",
"name": "Regression",
"projectId": 15006,
"startDate": "",
"executionSummaries": {
"executionSummary": []
}
},
"7": {
"versionName": "VersionOne",
"expand": "executionSummaries",
"versionId": 14500,
"projectId": 15006,
"startDate": "19/Sep/16",
"executionSummaries": {
"executionSummary": []
}
},
"-1": {
"versionName": "VersionOne",
"expand": "executionSummaries",
"name": "Ad hoc",
"modifiedBy": "",
"projectId": 15006,
"startDate": "",
"executionSummaries": {
"executionSummary": []
}
},
"recordsCount": 3
}
],
"14501": [
{
"-1": {
"versionName": "Version 2",
"expand": "executionSummaries",
"projectId": 15006,
"startDate": "",
"executionSummaries": {
"executionSummary": []
}
},
"recordsCount": 1
}
],
}
我需要遍历顶层和下一级(例如“14500”和“5”、“7”等)来查找键和值。因此,例如,我需要搜索整个JSON文件,以找到与“Regression”匹配的名称,并找到“projectd”的一组数据值,可能还有其他字符串。我以前是用数据[“level1”][0][“level2”]等来完成的,但在这种情况下,这些数字永远不会相同,所以我不知道如何称呼它们。我在浏览了这里的一些帖子之后写了以下内容,但是它只适用于一个级别,而不是JSON中的下一个级别。在
^{pr2}$
不管数据结构有多深,这都应该递归地工作。我现在还不能测试它,但我希望elast能给你一些想法。在
下面是一个部分脚本,它适合您的确切输入。如果它在适当的级别找到
name: regression
,它将打印一些相关的值。在看看神奇的^{} 图书馆!它有一个^{} 函数,在您的例子中可能是一个过度使用的功能,但是了解它是一件很好的事情。下面是一种从嵌套数据结构中提取带有
'name': 'Regression'
的所有dict的优雅方法:如果您只需要特定级别的dict,还可以在
visit
函数中检查path
的长度。在相关问题 更多 >
编程相关推荐