当前位置: 开源爱好者 » 编程教程 » Python教程 » 正文

python 写的json转csv文件的脚本

用python 写的一个json转csv文件的脚本,csv 文件的分隔符用的 '' ,hard code 到代码里了。

#-*-coding:UTF-8-*-
#!/usr/bin/python
import json
import csv
import fcntl
import time 
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')
# 读文件,该文件为源文件待解析
f_read = open('data_utf8_2_2.json')
print "fread",f_read
line = f_read.readline()
all_keys=None
json_data = json.loads(line)   
all_keys = json_data.keys()
key_str=''
# 这里的分隔符设置成 '|'
for key in all_keys:
    key_str += key
    key_str +='|'
key_str=key_str[:-1]
#这里的文件为转换后的输出文件
f_write=open('test.csv','w+')
f_write.write(key_str)
f_write.write('\r\n')
while line:
    new_line=''
    json_data = json.loads(line)
    for key in all_keys:
        tmp_str = None
        if not json_data.has_key(key):
            tmp_str='NA'
            new_line +=tmp_str
            new_line +='|'
            continue
        if type(json_data[key]) is list:
            tmp_str = ''.join(json_data[key])    
            if not tmp_str:
                tmp_str = 'NA'
            new_line += tmp_str.replace('\r','').replace('\n','').replace('\t','').replace('|','')
        else:
            tmp_str = json_data[key].replace('\r','').replace('\n','').replace('\t','').replace('|','')
            if not tmp_str:
                tmp_str='NA'
            new_line +=tmp_str
        new_line +='|'
    new_line = new_line[:-1]
    f_write.write(new_line)
    f_write.write('\r\n')
    line = f_read.readline()
f_read.close()

使用方法:

1. 直接执行 python json2csv.py (待转换文件hard code 到代码里)

2. 转换完后先打开excel ,然后从excel 里面找到转换后文件.csv 打开(注意不能直接打开否则会有乱码)

》编辑推荐的内容
  • 暂时没有内容……

CopyRight 2018© 开源爱好者 All Rights Reserved 豫ICP备16030607号 隐私声明 网站地图