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

The simplest, most powerful way to build serverless applications

Declaratively define next generation cloud infra with plain text. Build database backed web apps rapidly. Execute long running background tasks (15min), queues, and scheduled jobs. All open source.

⏱ Deploy in seconds with first class support for staging and production envs
💻 Work locally while completely offline with a speedy in-memory database
💓 Primitives, not frameworks: define app architecture agnostic of vendor arcana
💾 Version control your architecture and provision cloud infra in minutes from an .arc manifest

Leverage powerful Amazon Web Services serverless primitives without frustrating config: