У меня есть следующий JSON-файл из API Я звоню:.Python верхнего уровня JSON Index
{
"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, чтобы найти имя, соответствующее «Регрессии», и найти этот набор значений данных для «ProjectID» и, возможно, других строк. Я ранее делал это, используя данные ["level1"] [0] ["level2"] и т. Д., Но в этом случае числа никогда не будут одинаковыми, поэтому я не знаю, как их называть. Я написал следующее после просмотра некоторых сообщений здесь, но он работает только на одном уровне, а не на следующем уровне в JSON.
request = requests.get(getCyclesURL, headers=headers)
requestData = json.loads(request.text)
requestDataKeys = requestData.keys
for k in requestDataKeys():
dictionaryIDs = requestData[k]
for m in requestDataKeys:
newDictionaryIDs = requestData[k][m]
for dict in newDictionaryIDs:
if dict['versionName'] == versionName:
versionID = dict['versionID']
print '%s: %s'%(versionName, versionID)
@MMF это делает, поскольку они не вызывали метод при назначении. – jonrsharpe