# !/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import json
import pandas as pd
def json_level_extend(ori_json, level=1, parent_key=""):
"""
拓展json的深度
"""
print("parent_key:", parent_key)
all_dict = dict()
if level <= 1:
if len(parent_key) > 0:
for key, val in ori_json.items():
key = "{}-{}".format(parent_key, key)
all_dict[key] = val
return all_dict
for key, val in ori_json.items():
print("key:", key)
print("val:", val)
# 只有list元素只有一个时才可以拉平
if type(val) == list and len(val) == 1:
val = val[0]
if type(val) == dict:
all_dict.update(json_level_extend(val, level - 1, key))
else:
all_dict[key] = val
return all_dict
def json2excel(json_path, excel_path):
"""
将json转化为excel
"""
if not os.path.exists(json_path):
print("json file not exists.")
return
all_json_list = []
with open(json_path) as fp:
for line in fp.read().split("\n"):
line = line.strip()
if not line:
continue
ori_json = json.loads(line)
all = json_level_extend(ori_json["result"], 3)
#print(json.dumps(all, ensure_ascii=False))
#print(json.dumps(ori_json, ensure_ascii=False))
columns = []
all_json_list.append(all)
df = pd.DataFrame(all_json_list)
print(df.columns)
print(df)
df.to_excel(excel_path)
if __name__ == '__main__':
json_path = "./response2.json"
excel_path = "./result.xls"
json2excel(json_path, excel_path)