擷取巢狀的JSON 值
問題:
問題:<code class="json">{'name': 'ns1:timeSeriesResponseType', 'declaredType': 'org.cuahsi.waterml.TimeSeriesResponseType', 'scope': 'javax.xml.bind.JAXBElement$GlobalScope', 'value': {'queryInfo': {'creationTime': 1349724919000, 'queryURL': 'http://waterservices.usgs.gov/nwis/iv/', 'criteria': {'locationParam': '[ALL:103232434]', 'variableParam': '[00060, 00065]'}, 'note': [{'value': '[ALL:103232434]', 'title': 'filter:sites'}, {'value': '[mode=LATEST, modifiedSince=null]', 'title': 'filter:timeRange'}, {'value': 'sdas01', 'title': 'server'}]}}, 'nil': False, 'globalScope': True, 'typeSubstituted': False}</code>
問題:
當您解析JSON 資料時,您解析JSON可能會遇到像這樣的複雜嵌套結構:您想要提取特定值,例如「creationTime」欄位。
解:<code class="python">my_dict['key1']['key2']['key3']</code>
1。導航資料結構:
要擷取「creationTime」值,我們需要使用鍵導航巢狀結構:<code class="python">creation_time = my_dict['value']['queryInfo']['creationTime']</code>
2。範例程式碼:
要取得'creationTime' 值,請使用以下程式碼:要確定特定資料元素的路徑,請檢查JSON 回應的結構:
JSON 中的每個鍵值對結構代表一個路徑段。 要存取巢狀值,只需用「[]」連接路徑段即可。<code class="python">def get_nested_value(data, path): if isinstance(data, dict): if path[0] in data: return get_nested_value(data[path[0]], path[1:]) else: return None # Raise an error if the key doesn't exist elif isinstance(data, list): if len(path) == 0: return data else: return get_nested_value(data[path[0]], path[1:]) else: return data value = get_nested_value(my_dict, ['value', 'queryInfo', 'creationTime'])</code>4.更通用的方法:如果遇到未知的嵌套JSON 結構,可以使用遞歸函數來導航和檢索所需的值:
以上是如何從複雜的 JSON 結構中提取巢狀值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!