python json格式和csv文件转换

上代码

 import csv
import json '''
json格式示例
[{ "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" }]
'''
#file:json to csv
def transcsv(jsonpath, csvpath):
json_file = open(jsonpath, 'r', encoding='utf8')
csv_file = open(csvpath, 'w', newline='')
#读文件
ls = json.load(json_file) #将json格式的字符串转换成python的数据类型,解码过程
data = [list(ls[0].keys())] # 获取列名,即key
for item in ls:
data.append(list(item.values())) # 获取每一行的值value
#写入文件
for line in data:
csv_file.write(",".join(line) + "\n") # 以逗号分隔一行的每个元素,最后换行 fw.close() #关闭csv文件
#关闭文件
json_file.close()
csv_file.close()
#file:csv to json
def transjson(jsonpath, csvpath):
fw = open(jsonpath, 'w', encoding='utf8') # 打开csv文件
fo = open(csvpath, 'r', newline='') # 打开csv文件 ls = []
for line in fo:
line = line.replace("\n", "") # 将换行换成空
ls.append(line.split(",")) # 以,为分隔符
#print(ls)
#写入
for i in range(1, len(ls)): # 遍历文件的每一行内容,除了列名
ls[i] = dict(zip(ls[0], ls[i])) # ls[0]为列名,所以为key,ls[i]为value,
# zip()是一个内置函数,将两个长度相同的列表组合成一个关系对 json.dump(ls[1:], fw, sort_keys=True, indent=4)
#将Python数据类型转换成json格式,编码过程
#默认是顺序存放,sort_keys是对字典元素按照key进行排序
#indet参数用语增加数据缩进,使文件更具有可读性 # 关闭文件
fo.close()
fw.close() if __name__ == '__main__':
#transcsv('./testcase/my.json', './testcase/my.csv')
transjson('./testcase/write.json', './testcase/my.csv')

my.json文件内容:

[{ "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName":"Carter" }]

python json格式和csv文件转换的更多相关文章

  1. Python json格式处理

    Python json格式处理 首先放一段代码 import requests import jsonpath import json f=open('ip.txt','r',encoding='ut ...

  2. C#工具:CSV文件转换帮助类

    CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...

  3. 【转载】 C#工具类:Csv文件转换类

    CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...

  4. 将对象以json格式写入到文件中

    将 list 对象以json格式写入到文件中 try { ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeVa ...

  5. Python处理json格式的数据文件(一些坑、一些疑惑)

    这里主要说最近遇到的一个问题,不过目前只是换了一种思路先解决了,脑子里仍然有疑惑,只能怪自己太菜. 最近要把以前爬的数据用一下了,先简单的过滤一下,以前用scrapy存数据的时候为了省事也为了用一下它 ...

  6. python csv文件转换成xml, 构建新xml文件

    csv文件 code from xml.etree.ElementTree import Element,ElementTree,tostring import json,csv def csvtox ...

  7. 彻底理解使用JavaScript 将Json数据导出CSV文件

    前言 将数据报表导出,是web数据报告展示常用的附带功能.通常这种功能都是用后端开发人员编写的.今天我们主要讲的是直接通过前端js将数据导出Excel的CSV格式的文件. 原理 首先在本地用Excel ...

  8. xls/csv文件转换成dbf文件

    转至:https://blog.csdn.net/linhai1028/article/details/80211252 编写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy ...

  9. python笔记5-python2写csv文件中文乱码问题

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

随机推荐

  1. Python爬虫【第3篇】【多线程】

    一.多线程 Python标准库提供2个模块,thread是低级模块,threading是高级模块 1.threading模块创建多线程 方式1:把1个函数传入并创建Thread实例,然后调用start ...

  2. iOS中.pch文件怎样使用

    pch 能够用来存储共享信息,比方设备屏幕的宽度,高度.版本等等 公用信息 Xcode 老版本号会自己主动为我们创建pch文件,新版本号開始不自己主动创建了.假设须要使用能够自己手动创建 waterm ...

  3. the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.

    the largest value you actually can transmit between the client and server is determined by the amoun ...

  4. linux redis tmp redis 安装

    Redis https://redis.io/download yum install make gcc gcc-c++ openssl-devel zlib-devel -y; wget tar - ...

  5. 为什么要在css文件里定义 ul{margin:0;padding:0;}这个选择器?

    为什么要在css文件里定义 ul{margin:0;padding:0;}这个选择器? ul标签在FF中默认是有padding值的,而在IE中仅仅有margin默认有值.请看下面不同浏览中对paddi ...

  6. 用js获取access_token

    尝试用js获取access_token 最终失败告终,哈哈 1需要 appId和AppSecret 这两个参数是要保密的,建议不要暴露在外面,以防被别有用心的人利用. $.ajax({ url:'ht ...

  7. 炫酷的 CSS 形状(值得收藏)

    在今日头条中看到炫酷的 CSS 形状,就记录一下: 1.圆形 #circle { width: 100px; height: 100px; background: red; border-radius ...

  8. 如何精通javascript

    http://stackoverflow.com/questions/2628672/what-should-every-javascript-programmer-know Not jQuery. ...

  9. centos7的systemd

    系统启动流程 POST --> Boot Sequence --> Bootloader --> kernel+initramfs(initrd) --> rootfs --& ...

  10. bzoj 1611: [Usaco2008 Feb]Meteor Shower流星雨【BFS】

    t记录每个格子最早被砸的时间,bfs(x,y,t)表示当前状态为(x,y)格子,时间为t.因为bfs,所以先搜到的t一定小于后搜到的,所以一个格子搜一次就行 #include<iostream& ...