<p>我已经实现了一段代码,用于展平JSON并提取选定字段-</p>
<p><a href="https://stackoverflow.com/questions/67080705/how-to-extract-fields-from-nested-json-and-save-in-a-data-structure">How to extract fields from nested json and save in a data structure</a></p>
<p>下面是执行该任务的代码(只需更新字段列表,并用json文件路径替换“test1.json”)-</p>
<pre><code>import json
from pprint import pprint
import pandas as pd
def flatten_json(nested_json, fields):
out = []
temp = {}
def flatten(x, name=''):
nonlocal temp
if type(x) is dict:
temp = {}
for a in x:
flatten(x[a], a)
elif type(x) is list:
for i, a in enumerate(x):
flatten(a)
i += 1
elif name in fields:
temp[name] = x
out.append(temp)
flatten(nested_json)
return out
with open('test.json', 'r') as f:
json1 = json.loads(f.read())
# mention the required fields here.
fields = ['GEOID','votes_dem','votes_rep','votes_total','votes_per_sqkm','pct_dem_lead']
result = (flatten_json(json1, fields))
df = pd.DataFrame(result)
df.drop_duplicates(inplace=True)
</code></pre>