Python3-json3csv
来源:互联网 发布:拼音注音软件 编辑:程序博客网 时间:2024/05/17 23:23
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)
阅读全文
0 0
- Python3-json3csv
- python3
- Python3
- python3
- Python3
- Python3
- Python3
- python3
- python3
- python3
- Python3
- python3
- python3
- Python3
- Python3
- python3
- Python3
- python3笔记
- 通过例子学设计模式之--简单工厂模式以及使用场景说明(C++实现)
- thinkphp5.0返回上一页面
- 《Spring 5官方文档》-JMX
- Java并发之Fork-Join框架
- 2017全球女性领导者峰会暨又忙又美大赛全国总决赛将通过五个阶段的赛制和层层选拔
- Python3-json3csv
- AlertDialog使用
- 让控制台输出彩色日志 windows
- 公证书具备哪些法律效力?
- ViewPager实现循环轮播图
- Don't give me five!
- uboot的mmc命令
- homebrew命令
- Python3-Set