我有一个样例JSON文件,如下所示
data = {
"type": "video",
"videoID": "vid001",
"links": [
{"type": "video", "videoID": "vid002", "links": []},
{"type": "video",
"videoID": "vid003",
"links": [
{"type": "video", "videoID": "vid004"},
{"type": "video", "videoID": "vid005"},
]
},
{"type": "video", "videoID": "vid006"},
{"type": "video",
"videoID": "vid007",
"links": [
{"type": "video", "videoID": "vid008", "links": [
{"type": "video",
"videoID": "vid009",
"links": [{"type": "video", "videoID": "vid010"}]
}
]}
]},
]
}
我只需要从json文件中提取specific key and values并将其转换为CSV文件
编号:REF:Extracting Specific Keys/Values From A Messed-Up JSON File (Python)
def extract(data, keys):
out = []
queue = [data]
while len(queue) > 0:
current = queue.pop(0)
if type(current) == dict:
for key in keys:
if key in current:
out.append({key: current[key]})
for val in current.values():
if type(val) in [list, dict]:
queue.append(val)
elif type(current) == list:
queue.extend(current)
return out
x = extract(data, ["videoID","type"])
print(pd.DataFrame.from_dict(x))
当我将两个值传递给提取()时,将NaN放在中间 result个
videoID type
0 vid001 NaN
1 NaN video
2 vid002 NaN
3 NaN video
4 vid003 NaN
5 NaN video
6 vid006 NaN
7 NaN video
8 vid007 NaN
9 NaN video
10 vid004 NaN
11 NaN video
12 vid005 NaN
13 NaN video
14 vid008 NaN
15 NaN video
16 vid009 NaN
17 NaN video
18 vid010 NaN
19 NaN video
我需要获得如下所示的输出
videoID type
0 vid001 video
1 vid002 video
2 vid003 video
3 vid004 video
etc...
并将其转换为CSV文件,有人能帮我解决这个问题吗