For lack of real JSON for this problem, here is a generalized header-driven table extractor, that can work off arbitrary nested list and dictionary trees.
I included 3 samples:
- a random web driven Open Trivia result
- The OP's lazy JSON sample
- a recalcitrant XML weather sample, that reuses headers across all levels, foiling this approach.
Sample runs:
Open Trivia JSON is well formed.

The lazy feeds JSON sample is as it was given to us. (Foo)
This approach falls apart in the face of XML structures that reuse tags names locally.
The blocks:

The outer procedure:
Inner procedures:
The extract_table_helper is recursive, and searches for the given headers breadth_first, before it dives into lists and dictionary sub-values.
The result table is passed as a reference parameter all the way down the recursion stack, to allow the result table to be updated whenever the last header on the headers list is encountered.
A dictionary of the current running header values is passed up and down the recursion stack.
This scheme relies on the headers being passed in major/minor order.
table_extractor.aia (6.0 KB)