Python json数据写入csv json excel文件
一.写入
写入csv和json, 可以使用csv这个包写, 我这里没有使用, 并且把写csv和json的写到一起了
具体的代码就不解释了
def write_file(file_name, items, file_type="json", mode="a+", csv_separ=",", is_close=True, is_count=True):
"""
file_name: file path or file name, example: ./data/test.csv or test or test.csv
items: data list, example: [{},{}]
file_type: csv or json, default json
mode: write mode, default a+
csv_separ: if file_type is csv, choose csv separ, default ,
is_close: write items, close file, default close
is_count: count write file num
"""
if not file_name.endswith(file_type):
file_name = "%s.%s" % (file_name, file_type) if not isinstance(items, (tuple, list)):
items = [items] is_exists = True
if not os.path.exists(file_name):
is_exists = False file = open(file_name, mode)
write_count = 0
for item in items:
if (file_type == "csv") and (not is_exists):
file.write(csv_separ.join(item.keys()) + "\n")
is_exists = True if file_type == "csv":
try:
value_list = [re.sub(r"[\r\t\n\s]+", "", str(v)) for v in item.values()]
file.write(csv_separ.join(value_list) + "\n")
except Exception as e:
print(item)
elif file_type == "json":
file.write(json.dumps(item, ensure_ascii=False) + "\n")
write_count += 1
if is_close:
file.close() if is_count:
data_dir, data_file_name = os.path.split(file_pname)
with open("%s/%s.csv" % (data_dir, "count"), "a+") as f:
f.write("%s,%s\n" % (data_file_name, write_count))
return write_count
二. 使用pandas写入excel文件
1. 安装pandas 和 openpyxl 模块
pip3 install pandas openpyxl
2. 写入excel文件
def write_xlsx(file_name, data, sheet_name="reviews", is_count=True):
"""
file_name: file path, example: /data/test.xlsx
data: data list, example: [{}, {}]
sheet_name: sheet name, dafault: reviews,
is_count: count write file num
"""
excelWriter = pd.ExcelWriter(file_name)
datas = pd.DataFrame(data=list(data))
datas.to_excel(excelWriter, sheet_name=sheet_name, engine="openpyxl", index=False)
excelWriter.save()
excelWriter.close()
if is_count:
data_dir, data_file_name = os.path.split(file_pname)
with open("%s/%s.csv" % (data_dir, "count"), "a+") as f:
f.write("%s,%s\n" % (data_file_name, write_count))
return len(data)
3. 报错
一般的情况下, 只需要将模块更新到最新版即可
如有问题欢迎交流
Python json数据写入csv json excel文件的更多相关文章
- python读取与写入csv,txt格式文件
python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...
- python 将json格式的数据写入csv格式的文件中
# coding=utf-8 import json import csv # 重新进行配置读写数据时的默认编码 import sys reload(sys) sys.setdefaultencodi ...
- python读取txt、csv和excel文件
一.python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容) fp = open('test.txt','r') lines = fp.readlines() fp.clo ...
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
今天写C#导出datagrid数据到csv格式文件的时候,发现不管怎么尝试,凡是单元格里面全是数字的单元格,在用Excel打开的时候,都被自动转义成数据格式.数据查看极其不方便.最后google了一下 ...
- 将数据写入已有的excel文件
/** * 将反馈结果写入excel中 * */ public static void writeExcelResult(String url,List<Integer> result) ...
- Python数据写入csv格式文件
(只是传递,基础知识也是根基) Python读取数据,并存入Excel打开的CSV格式文件内! 这里需要用到bs4,csv,codecs,os模块. 废话不多说,直接写代码!该重要的内容都已经注释了, ...
- 【Python】通过python代码实现demo_test环境的登录,通过csv/txt/excel文件批量添加课程并开启课程操作--(刚开始 项目 页面 模块 元素这种鸟 被称作pageobject 等这些搞完 然后把你的定位器、数据 和脚本在分离 就是传说中那个叫数据驱动 的鸟)
一.1.通过csv文件批量导入数据 1 from selenium import webdriver from time import ctime,sleep import csv #循环读取每一行每 ...
- 【转】Python之数据序列化(json、pickle、shelve)
[转]Python之数据序列化(json.pickle.shelve) 本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
随机推荐
- 警告:MySQL-server-5.6.26-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
警告:MySQL-server--.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY 错误:依赖检测失败: /usr/bin/ ...
- Spring mvc请求处理流程详解(一)之视图解析
本文链接:https://blog.csdn.net/lchpersonal521/article/details/53112728 前言 Spring mvc框架相信很多人都很熟悉了,关于这方面 ...
- Linux 6 本地网络配置方法
在Linux 6 系统安装完成后,需要对网络进行一系列的配置,有些朋友喜欢使用桌面图形化工具的配置方式,这种配置方法虽说比较方便,但是在某些时候并不问题,总是会出现各种问题.特别是作为服务器用途的时候 ...
- Outlook 邮件助手
Outlook 邮件助手 1 Overview 2 C# 编程 3 Outlook 设置 3.1 Outlook 2013 3.2 Outlook 2010 1 Overview 本章将示例如何开发一 ...
- Kubernetes(K8s)基础知识(docker容器技术)
今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...
- MVC运行机制[转]
原:http://www.cnblogs.com/jyan/archive/2012/06/29/2569566.html#3122335 ASP.NET是一种建立动态Web应用程序的技术.它是.NE ...
- map小列
// 有关学生信息的头文件student.h代码如下 #include #include using namespace std; struct Student ...
- Python进阶(十一)----包,logging模块
Python进阶(十一)----包,logging模块 一丶包的使用 什么是包: 包是通过使用 .模块名的方式组织python模块名称空间的方式. 通俗来说,含有一个__init__.py文件的文 ...
- springmvc框架helloword
spring框架提供了构建web的应用程序的全功能MVC模块-spring mvc.我们首先来写一个springmvc的hellword的配置文件的形式 工程结构如下 index.jsp <%@ ...
- chrome浏览页面常用快捷键
1.chrome浏览页面常用快捷键 Ctrl+N 打开新窗口. Ctrl+T 打开新标签页. Ctrl+W关闭当前标签 Ctrl + F4 关闭chrome浏览器 Ctrl+Tab 或 Ctrl+Pg ...