博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现json、ini、csv格式的文件转换
阅读量:4130 次
发布时间:2019-05-25

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

import jsonfrom configparser import ConfigParser# test.json'''[{"name": "apple", "price": "10", "amount": "3"},{"name": "tesla", "price": "100000", "amount": "1"},{"name": "mac", "price": "3000", "amount": "2"},{"name": "lenovo", "price": "30000", "amount": "3"},{"name": "chicken", "price": "10", "amount": "3"}]'''# mysql.ini'''[DEFAULT]a = test[mysql]default-character-set = utf8[mysqld]test1 = 200datadir = /dbserver/dataport = 33060character-set-server = utf8sql_mode = NO_ENGINE_SUBSTRITUTION,STRICT_TRANS_TABLESc = True[test]test1 = 100'''# sun.csv'''name,price,amountapple,10,3tesla,100000,1mac,3000,2lenovo,30000,3chicken,10,3'''# file:json to csvdef json2csv(json_path, csv_path):    with open(json_path, 'r', encoding='utf-8') as f1:        with open(csv_path, 'w', newline='') as f2:            ls = json.load(f1)            data = [list(ls[0].keys())]            for item in ls:                data.append(list(item.values()))            for line in data:                f2.write(','.join(line) + '\n')# file:csv to jsondef csv2json(json_path, csv_path):    ls = []    with open(csv_path, 'r', newline='') as f1:        with open(json_path, 'w', encoding='utf-8') as f2:            for line in f1:                ls.append(line.replace('\n', '').split(','))            # print(ls)            for i in range(1, len(ls)):                ls[i] = dict(zip(ls[0], ls[i]))            json.dump(ls[1:], f2, indent=4)            # 将Python数据类型转换成json格式,编码过程            # 默认是顺序存放,sort_keys是对字典元素按照key进行排序            # indent参数用语增加数据缩进,使文件更具有可读性def ini2json(json_path, ini_path):    d = {}    cfg = ConfigParser()    cfg.read(ini_path)    for s in cfg.sections():        # print(s)        # print(cfg.items(s))  # 指定section,返回二元组        d[s] = dict(cfg.items(s))    with open(json_path, 'w') as f:        json.dump(d, f)def json2ini(json_path, ini_path):    with open(json_path, 'r') as f1:        with open(ini_path, 'w') as f2:            dic = json.load(f1)            cfg = ConfigParser()            # print(ls)            for section, section_items in zip(dic.keys(), dic.values()):                cfg._write_section(f2, section, section_items.items(), delimiter='=')if __name__ == '__main__':    ini2json('./test2.json', './mysql.ini')    json2ini('./test2.json', './sun.ini')    json2csv('./test.json', './sun.csv')    csv2json('./b.json', './sun.csv')

 

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

你可能感兴趣的文章
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
Longest Common Prefix -最长公共前缀
查看>>