は私が呼び出していますAPIから次のようなJSONファイルを持っている:Pythonのトップレベルの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ファイル全体を検索して、 "回帰"と一致する名前を見つけ、 "ProjectID"と他の文字列のデータセットのセットを探し出す必要があります。私はこれまでdata ["level1"] [0] ["level2"]などを使ってこれを行っていましたが、この場合の数字は決して同じではないので、どのように呼び出すのか分かりません。私はここでいくつかの記事を見て、次のように書いていますが、これはJSONの次のレベルではなく、1つのレベルでしか機能しません。
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