python json文件导出为csv格式

记录下,转载的,链接找不到了

# -*-coding:utf-8-*-
import csv
import json
import sys
import codecs


def trans(path):
    jsonData = codecs.open(path + '.json', 'r', 'utf-8')
    csvfile = open(path + '.csv', 'w', newline='')  # python3下
    writer = csv.writer(csvfile, delimiter='\t', quoting=csv.QUOTE_ALL)
    flag = True
    for line in jsonData:
        dic = json.loads(line[0:-1])
        if flag:
            # 获取属性列表
            keys = list(dic.keys())
            print(keys)
            writer.writerow(keys)  # 将属性列表写入csv中
            flag = False
        # 读取json数据的每一行,将values数据一次一行的写入csv中
        writer.writerow(list(dic.values()))
    jsonData.close()
    csvfile.close()


if __name__ == '__main__':
    path = str(sys.argv[1])  # 获取path参数
    print(path)
    trans(path)

python XX.py 目录\json文件名

### 如何使用PythonJSON文件换为CSV文件 为了将JSON文件换为CSV文件,可以采用`pandas`库来处理。以下是具体方法: 通过加载JSON文件到DataFrame对象中再将其保存为CSV文件是一种常见的方式[^1]。 ```python import pandas as pd # 加载json文件至DataFrame df_json = pd.read_json('data.json') # 将DataFrame写入csv文件 df_json.to_csv('data.csv', index=False) ``` 对于结构较为复杂的嵌套型JSON数据,则可能需要先对其进行扁平化处理后再执行上述操作[^2]。 当遇到具有复杂层次结构的数据集时,可借助第三方工具如`flatten-json`来进行预处理工作,从而简化后续流程[^3]。 如果JSON文档内含有多级嵌套的对象或数组,在这种情况下直接调用`read_json()`可能会导致某些字段未能被正确解析。此时应该考虑编写自定义函数以适应特定情况下的需求[^4]。 #### 处理多层嵌套的JSON实例 针对含有深层嵌套属性的情况,下面给出了一种解决方案: ```python from flatten_json import flatten import json import pandas as pd def load_and_flatten_json(file_path): with open(file_path, 'r') as file: data = json.load(file) flat_data = [flatten(record) for record in data] return pd.DataFrame(flat_data) if __name__ == "__main__": df_nested_json = load_and_flatten_json('complex_data.json') df_nested_json.to_csv('flattened_data.csv', index=False) ``` 此段代码首先导入必要的模块,并定义了一个名为`load_and_flatten_json`的方法用于读取并展平输入的JSON文件;最后创建一个新的DataFrame并将之导出CSV格式存储于磁盘上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值