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数据,将前台传来 ...
随机推荐
- Locust性能测试_先登录场景案例
前言 有很多网站不登录的话,是无法访问到里面的页面的,这就需要先登录了实现场景:先登录(只登录一次),然后访问页面->我的地盘页->产品页->项目页 官方案例 下面是一个简单的loc ...
- emmet css 缩写
css 缩写 对于CSS语法,Emmet有许多用于属性的预定义代码段.例如,您可以扩展 m 缩写以获取margin: ;代码段. 要获取 margin: 10px;您可以简单地扩展m10缩写. 需要多 ...
- MySql5.7 json查询
create table t1(name json); insert into t1 values(’ { “hello”: “song”, “num”: 111, “obj”: { “who”: “ ...
- .NET Core入门
.Net core MVC 如何使用 .NET Core,最基本的入行,很多博客以及官网都有的太多太多的例子,但是大部分没有人做到了真的让一个小白一步一步的去学, 我第一次接触的时 ...
- 服务注册发现(一) Consul 简介及 windows版本的安装与部署
Consul是一个用来实现分布式系统的服务发现与配置的开源工具.他主要由多个组成部分: 服务发现:客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使用Consul发现服务的 ...
- java中异常的抛出:throw throws
java中异常的抛出:throw throws Java中的异常抛出 语法: public class ExceptionTest{ public void 方法名(参数列表) throws 异常列表 ...
- unity shader入门(四):高光
高光反射计算公式(phong模型)Cspecular=(Clight*Mspecular)max(0,v*r)mgloss mgloss为材质的官泽度,也成反射度,控制高光区域亮点有多大 Mspecu ...
- java系统化基础-day01-基础语法知识
1.学前必看 该课程将系统化的讲解java基础,但是该课程并不适合零基础的学员,因为在整个java学习体系中我们是按照实际生产设计, 主体思路是以完成某个业务为主线,用到什么技术就学什么技术,即带着问 ...
- 基于GDI显示png图像
intro 先前基于GDI已经能够显示BITMAP图像:windows下控制台程序实现窗口显示 ,其中BMP图像是使用LoadImage()这一Win32 API函数来做的.考虑到LoadImage( ...
- centos 宝塔 使用命令行快速导入数据库sql
先将sql文件上传到服务器,例如上传到www文件夹 然后打开命令行工具 输入 mysql -u 数据库用户名 -p 然后复制密码进去 然后输入 use 数据库名 回车 然后输入 source /www ...