Extract Nested Data From Complex JSON
Never manually walk through complex JSON objects again by using this function
<span class="hljs-comment"># recursivejson.py</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">extract_values</span><span class="hljs-params">(obj, key)</span>:</span> <span class="hljs-string">"""Pull all values of specified key from nested JSON."""</span> arr = [] <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">extract</span><span class="hljs-params">(obj, arr, key)</span>:</span> <span class="hljs-string">"""Recursively search for values of key in JSON tree."""</span> <span class="hljs-keyword">if</span> isinstance(obj, dict): <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">in</span> obj.items(): <span class="hljs-keyword">if</span> isinstance(v, (dict, list)): extract(v, arr, key) <span class="hljs-keyword">elif</span> k == key: arr.append(v) <span class="hljs-keyword">elif</span> isinstance(obj, list): <span class="hljs-keyword">for</span> item <span class="hljs-keyword">in</span> obj: extract(item, arr, key) <span class="hljs-keyword">return</span> arr results = extract(obj, arr, key) <span class="hljs-keyword">return</span> results
source:
$link[host]
Read Original Source