目标
将json格式的文件转换为csv格式的文件,用python写一个转换器
依赖库
处理json文件需要json库,使用如下命令安装
pip install json
待转换的json文件名为input.json,格式如下:
[ { "name": "lucy", "height": 165, "weight": 106 }, { "name": "lilei", "height": 175, "weight": 138 } ]
实现
创建convert.py文件(几乎每行代码都有详细的注释),代码如下:
# -*- coding: utf-8 -*- import json # 主程序,执行入口 if __name__ == '__main__': # try except Python的异常处理机制 try: # with Python中的上下文管理器,会帮我们释放资源,比如 关闭文件句柄 # open 函数为Python内建的文件读取函数,r代表只读 with open('input.json', 'r') as f: # 解析一个有效的JSON字符串并将其转换为Python字典 data = json.loads(f.read()) # 使用 ,连接列表中的值 # data[0]是一个字典类型,一个星号代表展开键,两个星号(**)代表展开字典的值 output = ','.join([*data[0]]) # 遍历 字典列表data for obj in data: # 将结果转化为字符串,累加到output中 # f 为f-string格式化,将大括号中的表达式替代 output += f'{obj["name"]},{obj["height"]},{obj["weight"]}' # 将结果写到到output.csv中 with open('output.csv', 'w') as f: f.write(output) except Exception as ex: print(f'Error: {str(ex)}')
运行 python convert.py 就能得到转换后的output.csv文件,结果如下:
name,height,weight lucy,165,106 lilei,175,138