利用python将json文件转换为csv文件

利用python 将json文件转换为csv文件

格式如下:

{"record_time": "2019-04-13 17:41:34.246", "source_ip": "10.59.223.71", "destination_ip": "10.59.223.31", "protocol": "http", "destination_port": "80", "uplink_length": 278, "downlink_length": 353}	
{"record_time": "2019-04-17 07:17:58.561", "source_ip": "10.59.21.15", "destination_ip": "10.24.32.75", "protocol": "http", "destination_port": "8080", "uplink_length": 1428, "downlink_length": 176}	
{"record_time": "2019-04-15 21:47:01.807", "source_ip": "10.59.212.147", "destination_ip": "218.30.118.204", "protocol": "http", "destination_port": "80", "uplink_length": 610, "downlink_length": 154}

转换代码如下:

import csv
import json
import codecs

'''
将json文件格式转为csv文件格式并保存。
'''
class Json_Csv():

	#初始化方法,创建csv文件。
    def __init__(self):
        self.save_csv = open('../Data/output.csv', 'w', encoding='utf-8', newline='')
        self.write_csv = csv.writer(self.save_csv, delimiter=',')  #以,为分隔符

    def trans(self,filename):
        with codecs.open(filename,'r',encoding='utf-8') as f:
            read=f.readlines()
            flag=True
            for index,info in enumerate(read):
                data=json.loads(info)
                if index <10000000: #读取json文件的前1千万行写入csv文件 。要是想写入全部,则去掉判断。
                    if flag: #截断第一行当做head
                        keys=list(data.keys())  #将得到的keys用列表的形式封装好,才能写入csv
                        self.write_csv.writerow(keys)
                        flag=False  #释放
                    value=list(data.values())   #写入values,也要是列表形式
                    self.write_csv.writerow(value)
            self.save_csv.close()  #写完就关闭


if __name__=='__main__':
    json_csv=Json_Csv()
    path='../Data/part-00000.json'
    json_csv.trans(path)

(2)将复杂json文件转为csv文件 请查看博主总结的数据清洗模块源代码:https://gitee.com/tutu_57893_7590/data-analysis

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3分钟秒懂大数据

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值