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

Apache OpenWhisk: Open Source Serverless Cloud Platform

Apache OpenWhisk (Incubating) is an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.

The OpenWhisk platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources ( Feeds) or from HTTP requests. The project includes a REST API-based Command Line Interface (CLI) along with other tooling to support packaging, catalog services and many popular container deployment options.

Write functions in any language

Work with what you know and love. OpenWhisk supports a growing list of your favorite languages such as NodeJSSwiftJavaGoScalaPythonPHPRuby and Ballerina.