博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3-json3csv
阅读量:7041 次
发布时间:2019-06-28

本文共 1552 字,大约阅读时间需要 5 分钟。

import jsonimport csvjson_str = '[{"a":1,"b":"2","c":"3"},{"a":21,"c":"23","d":{"d1":"24"},"e":"25"}]'o = json.loads(json_str)def loop_data(o, k=''):    global json_ob, c_line    if isinstance(o, dict):        for key, value in o.items():            if (k == ''):                loop_data(value, key)            else:                loop_data(value, k + '.' + key)    elif isinstance(o, list):        for ov in o:            loop_data(ov, k)    else:        if k not in json_ob:            json_ob[k] = {}        json_ob[k][c_line] = odef get_title_rows(json_ob):    title = []    row_num = 0    rows = []    for key in json_ob:        title.append(key)        v = json_ob[key]        if len(v) > row_num:            row_num = len(v)        continue    for i in range(row_num):        row = {}        for k in json_ob:            v = json_ob[k]            if i in v.keys():                # 若有数据 ,则用填入表格                row[k] = v[i]            else:                # 若没有数据 ,则用空补位                row[k] = ''        rows.append(row)    return title, rowsdef write_csv(title, rows, csv_file_name):    # 输出文件名称  newline: 去掉csv中默认会写入空行的问题    with open(csv_file_name, 'w', newline='') as csv_file:        writer = csv.DictWriter(csv_file, fieldnames=title)        writer.writeheader()        writer.writerows(rows)def json_to_csv(object_list):    global json_ob, c_line    json_ob = {}    c_line = 0    for ov in object_list:        loop_data(ov)        c_line += 1    title, rows = get_title_rows(json_ob)    write_csv(title, rows, 'test.csv')json_to_csv(o)

转载地址:http://ujaal.baihongyu.com/

你可能感兴趣的文章
深度有趣 | 29 方言种类分类
查看>>
态度这么差,我不敢要你啊?
查看>>
mybatis+dubbo+ springmvc+zookeeper分布式架构
查看>>
vue实现三级省市区三级联动
查看>>
学习JavaScript正则表达式之——字符匹配攻略 #1
查看>>
InnoDB存储引擎MVCC实现原理
查看>>
西瓜书学习-神经网络
查看>>
[译] 如何用 CSS Animations 实现滑动图片展现文字的效果
查看>>
Zend Studio使用教程:使用Zend Studio和Zend Server进行根本原因分析 (二)
查看>>
golang的fmt包String(),Error(),Format(),GoString()的接口实现
查看>>
Java技术转(兼顾)产品经理——读《快速转行做产品经理》有感
查看>>
成为优秀Java开发人员的10件事
查看>>
Kali Linux安装教程
查看>>
mysql客户端pymysql在python下性能比较
查看>>
Android缓存处理
查看>>
JavaScript 数据类型检测终极解决方案
查看>>
年赚百万游戏主播!玩转Python后:几行代码轻松“吃鸡” 附源码
查看>>
【python】使用简单的python语句编写爬虫 定时拿取信息并存入txt
查看>>
卡拉OK歌词原理和实现高仿Android网易云音乐
查看>>
那些被忽略的盒子模型小知识
查看>>