json转换csv的python实现
来源:互联网 发布:网站编辑seo是什么 编辑:程序博客网 时间:2024/06/01 10:27
一、需求
1.需求
想要从JAON文件转换成csv文件,进行数据处理。注意此json文件为多个json的合集。
2.测试json文件数据
{"t": "2017-12-20T10:53:51.582000+08:00", "a": 0, "b": 0, "c": 7, "d": 42, "e": 1, "g": 23, "h": 1}
{"t": "2017-12-20T10:53:51.582000+08:00", "a": 0, "b": 0, "c": 7, "d": 42, "e": 1}
{"t": "2017-12-20T10:53:51.582000+08:00", "a": 0, "b": 0, "c": 7, "d": 42, "e": 1}
{"t": "2017-12-20T10:53:51.582000+08:00", "a": 0, "b": 0, "c": 7, "d": 42, "e": 1, "g": 23, "h": 1}
二、代码一
import csvimport jsonimport sysimport collections # 有序字典def trans(path): jsonData=open(path+'.json') #csvfile = open(path+'.csv', 'w')#此处这样写会导致写出来的文件会有空行 csvfile = open(path+'.csv', 'wb')#python2下# csvfile = open(path+'.csv', 'w',newline='')#python3下 for line in jsonData:#获取属性列表 dic=json.loads(line[0:]) keys=dic.keys() break writer = csv.writer(csvfile) writer.writerow(keys)#将属性列表写入csv中 for dic in jsonData:#读取json数据的每一行,将values数据一次一行的写入csv中 dic=json.loads(dic[0:]) writer.writerow(dic.values()) jsonData.close() csvfile.close()trans("./dic_test")
1.结果:
a c b e dgh t
0 7 0142 2017-12-20T10:53:51.582000+08:00
0 7 0142 2017-12-20T10:53:51.582000+08:00
0 7 0142 23 1 2017-12-20T10:53:51.582000+08:00
数据错位了?什么情况?问题出现在哪里?
2.分析:
多个json由于每个json的key值不统一(有多有少),json是无序的,导致插入时候的value值无序,所以导致最后写入csv的值错乱。
三、代码二
import csvimport jsonimport sysimport collections # 有序字典def trans(path): jsonData=open(path+'.json') #csvfile = open(path+'.csv', 'w')#此处这样写会导致写出来的文件会有空行 csvfile = open(path+'.csv', 'wb')#python2下 data = {} keys_write = True writer = csv.writer(csvfile) for line in jsonData:#获取属性列表 dic=json.loads(line[0:-1]) keys=dic.keys() break for dic in jsonData:#读取json数据的每一行,将values数据一次一行的写入csv中 print(dic) dic=json.loads(dic[0:]) for key in keys: if dic.has_key(key): data[key] = dic[key] else: data[key] = "" print(data) if keys_write == True: writer.writerow(data.keys()) writer.writerow(data.values()) keys_write = False jsonData.close() csvfile.close()trans("./dic_test")
结果:
a c b e dgh t
0 7 0142 2017-12-20T10:53:51.582000+08:00
0 7 0142 2017-12-20T10:53:51.582000+08:00
0 7 0142 23 1 2017-12-20T10:53:51.582000+08:00
参考:
http://blog.csdn.net/qq_23926575/article/details/72788485
- json转换csv的python实现
- python 如何将CSV转换为json
- 使用python开发json、csv数据格式转换工具
- 使用python开发json、csv数据格式转换工具
- 利用python将json数据转换为csv格式
- Python JSON、CSV
- python xml 转换csv ,csv 转换xml
- python实现txt/csv的读取和写入txt/csv!
- python json转csv示例
- python用json转csv
- python与json的转换
- 转换vcf文件到csv文件的python脚本
- json读取+对象转换+csv读写
- python读写word、excel、csv、json文件
- python | 读文件 | csv 、json、pickle等
- Python的CSV模块
- Python的CSV模块
- python的CSV模块
- UIView的layoutSubviews、layoutIfNeeded、setNeedsLayout区别和联系
- 前端js比较好的书
- Springmvc+uploadify实现文件上传
- 在cmd下进入写C语言
- nowcoder 练习赛8 E 集合中的质数(容斥)
- json转换csv的python实现
- Delphi下使用Windows GDI绘图
- IntelliJ IDEA快捷键整理
- 异常-catch中的return
- 1欢迎使用CSDN-markdown编辑器
- opencv_haartraining.exe 训练数据集自己经历过的坑
- Git使用总结
- 自定义view-滑动刻度尺计算金额
- (转载)Android+Java知识点总结