
需求: 有类似下面一个 .json 文件,希望将 .json 文件转换成 excel 文件
test.json
[ { “id”: 1, “name”: “对象(obj)”, “comments”: [“aa”, “bb”, “cc”] }, { “id”: 4, “name”: “结构化(sds)”,
"comments": ["aa", "dd", "cc", "ii"]},
......{
"id": 495,"name": "序列","comments": ["aa"]}
]
#
1. 分析/思路
后续补充。。。
2. 脚本
【脚本 j2e_v1.0.py】json文件内容规律,字段都一样
import jsonimport openpyxl# 读取 .json 文件def read_json(file):with open(file, 'r', encoding='utf8') as fr:json_data = json.load(fr)return json_data# 将数据写入 excel 文件def write_to_excel(file):j_data = read_json(file)j_data_length = len(j_data)# 创建 excel 文件并获取默认的 sheet 表wb = openpyxl.Workbook()ws = wb.active# 创建 excel 表头table_title_field = list(j_data[0].keys())for col in range(len(table_title_field)):last_col = col + 1ws.cell(row=1, column=last_col).value = table_title_field[col]# 写入基本数据for i in range(j_data_length):each_line = j_data[i]each_line_field = list(each_line.keys())for j in range(len(each_line_field)):ws.cell(row=i + 2, column=j + 1).value = str(each_line[each_line_field[j]]) # 从第二行开始写入数据wb.save('je_v1.0.xlsx')if __name__ == '__main__':write_to_excel('./test.json')
【脚本 j2e_v2.0.py】json文件内容不是很规律,如有的对象中某个字段没有
import jsonimport openpyxl# 读取 .json 文件def read_json(file):with open(file, 'r', encoding='utf8') as fr:json_data = json.load(fr)return json_data# 将数据写入 excel 文件def write_to_excel(file):j_data = read_json(file)j_data_length = len(j_data)# 创建 excel 文件并确定 sheet 表wb = openpyxl.Workbook()ws = wb.active# sheet_je = openpyxl.workbook().create_sheet('je') # 创建 excel 文件并在默认的 sheet 表后追加一个sheet表‘je’,在默认表前建sheet:openpyxl.workbook().create_sheet('je', 0)# 创建表头table_title_field = list(j_data[0].keys())last_col = 0for col in range(len(table_title_field)):last_col = col + 1ws.cell(row=1, column=last_col).value = table_title_field[col]# 写入基本数据for i in range(j_data_length):each_line = j_data[i]each_line_field = list(each_line.keys())# 将每个对象的数据按对应的字段在每一行中填写j = 0while j < len(each_line_field):# 判断每个对象字段是否有对应的列if each_line_field[j] not in table_title_field:table_title_field.append(each_line_field[j])last_col += 1ws.cell(row=1, column=last_col).value = each_line_field[j]# 将对象的字段值写进对应列的单元格中column_f = table_title_field.index(each_line_field[j]) + 1ws.cell(row=i+2, column=column_f).value = str(each_line[each_line_field[j]])j += 1wb.save('je_v2.0.xlsx')if __name__ == '__main__':write_to_excel('./test.json')
2. 扩展
上面,将 json 文件转换成 excel 文件,使用的第三方库包括 json、openpyxl。先记录一些它们基本的用法。
1. json 库
2. openpyxl 库
3. 参考
- 参考文章
- 在线转换工具
- JSON to CSV Converter (强烈推荐收藏)
- JSON 转换 Excel

