共計(jì) 1011 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 Python 中,要取得 JSON 數(shù)據(jù)中多層嵌套的值,可以使用以下方法:
- 通過(guò)索引或鍵名依次訪問(wèn)每一層的值,直到達(dá)到目標(biāo)層級(jí)。
- 使用遞歸函數(shù),遍歷每一層的值,直到找到目標(biāo)層級(jí)。
- 使用 jsonpath 庫(kù),它是一個(gè)用于解析 JSON 數(shù)據(jù)的庫(kù),可以根據(jù)指定的路徑直接獲取目標(biāo)值。
下面是使用以上方法的示例代碼:
方法一:通過(guò)索引或鍵名訪問(wèn)每一層的值
import json
data = {"key1": {"key2": {"key3": "value"
}
}
}
# 通過(guò)索引或鍵名依次訪問(wèn)每一層的值
value = data["key1"]["key2"]["key3"]
print(value) # 輸出: value
方法二:使用遞歸函數(shù)遍歷每一層的值
import json
data = {"key1": {"key2": {"key3": "value"
}
}
}
# 遞歸函數(shù)遍歷每一層的值
def get_value(obj, target_key):
if isinstance(obj, dict):
for key, value in obj.items():
if key == target_key:
return value
else:
result = get_value(value, target_key)
if result is not None:
return result
elif isinstance(obj, list):
for item in obj:
result = get_value(item, target_key)
if result is not None:
return result
value = get_value(data, "key3")
print(value) # 輸出: value
方法三:使用 jsonpath 庫(kù)獲取目標(biāo)值
import json
from jsonpath_ng import parse
data = {"key1": {"key2": {"key3": "value"
}
}
}
# 使用 jsonpath 庫(kù)獲取目標(biāo)值
jsonpath_expression = parse("$.key1.key2.key3")
value = [match.value for match in jsonpath_expression.find(data)][0]
print(value) # 輸出: value
請(qǐng)注意,要使用 jsonpath 庫(kù),你需要在 Python 中安裝該庫(kù)。可以使用以下命令安裝:
pip install jsonpath-ng
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完