|
|
|
|
|
大多數(shù)情況下,JSON包含很多嵌套鍵,讓我們看看Python如何直接從JSON訪問嵌套的鍵值對。
假設你有以下 JSON 數(shù)據(jù),并且你想檢查和訪問嵌套鍵標記的值。
{
"class":{
"student":{
"name":"jhon",
"marks":{
"physics":70,
"mathematics":80
}
}
}
}
如果你知道始終存在父密鑰,則可以直接訪問嵌套的 JSON 密鑰。在這種情況下,我們總是有“ class ”和“ student ”鍵,所以我們可以直接訪問嵌套的鍵標記。
import json
sampleJson = """{
"class":{
"student":{
"name":"jhon",
"marks":{
"physics":70,
"mathematics":80
}
}
}
}"""
print("Checking if nested JSON key exists or not")
sampleDict = json.loads(sampleJson)
if 'marks' in sampleDict['class']['student']:
print("Student Marks are")
print("Printing nested JSON key directly")
print(sampleDict['class']['student']['marks'])
輸出:
Checking if nested JSON key exists or not
Student Marks are
Printing nested JSON key directly
{'physics': 70, 'mathematics': 80}
如果你不確定是否始終存在父鍵,在這種情況下,我們需要使用嵌套的 if 語句訪問嵌套的 JSON,以避免任何異常。
import json
sampleJson = """{
"class":{
"student":{
"name":"jhon",
"marks":{
"physics": 70,
"mathematics": 80
}
}
}
}"""
print("Checking if nested JSON key exists or not")
sampleDict = json.loads(sampleJson)
if 'class' in sampleDict:
if 'student' in sampleDict['class']:
if 'marks' in sampleDict['class']['student']:
print("Printing nested JSON key-value")
print(sampleDict['class']['student']['marks'])
迭代 JSON 數(shù)組
很多時候,嵌套的 JSON 鍵包含一個數(shù)組或字典形式的值。在這種情況下,如果你需要所有值,我們可以迭代嵌套的 JSON 數(shù)組。讓我們看看這個例子。
import json
sampleJson = """{
"class":{
"student":{
"name":"jhon",
"marks":{
"physics": 70,
"mathematics": 80
},
"subjects": ["sub1", "sub2", "sub3", "sub4"]
}
}
}"""
sampleDict = json.loads(sampleJson)
if 'class' in sampleDict:
if 'student' in sampleDict['class']:
if 'subjects' in sampleDict['class']['student']:
print("Iterating JSON array")
for sub in sampleDict['class']['student']['subjects']:
print(sub)
輸出:
Iterating JSON array
sub1
sub2
sub3
sub4
總結
本文介紹了Python如何直接訪問JSON嵌套鍵的實例,希望本文能對你有所幫助。