python中 将json数据转化为excel表格

python中 将json数据转化为excel表格python 中将 json 数据结构转化为 excel 表格 json 数据 我的数据类型是 列表嵌套字典 先通过 csv 模块将 json 数据类型转化为 csv 格式 usr bin python3 coding utf 8 importcsv 获取 数据 importjsonwi json txt r asf

python中将json数据结构转化为excel表格

文件数据

[ { 
   "name":"23675-用户增长产品经理(北京)", "csategory":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06", }, { 
    "name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06" }, { 
    "name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06"}, { 
    "name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06" } ] 

报错问题总结

  • JSONDecodeError: 一般为json格式错误
  • json在线解析和格式校验
  • keyerror: 这种错误没复现。如果有这种错误,把文件数据发出来,再瞅瞅

两种形式转换为excel

一、直接写入到excel

  • 前提需要安装 tablib
  • 命令: pip install tablib[all]
#!/usr/bin/python3 # -*- coding: utf-8 -*- import json import tablib # json.text文件的格式: [{"a":1},{"a":2},{"a":3},{"a":4},{"a":5}] # 获取json数据 with open('json.txt', 'r') as f: rows = json.load(f) # 将json中的key作为header, 也可以自定义header(列名) header=tuple([ i for i in rows[0].keys()]) data = [] # 循环里面的字典,将value作为数据写入进去 for row in rows: body = [] for v in row.values(): body.append(v) data.append(tuple(body)) data = tablib.Dataset(*data,headers=header) open('data.xls', 'wb').write(data.xls) 

二、先通过csv模块将json数据类型转化为csv格式,再导入表格

 #!/usr/bin/python3 # -*- coding: utf-8 -*- import csv # 获取json数据 import json with open('json.txt', 'r') as f: rows = json.load(f) # 创建文件对象 f = open('data.csv', 'w') # 通过文件创建csv对象 csv_write = csv.writer(f) # writerow: 按行写入, writerows: 是批量写入 # 写入数据 取列表的第一行字典,用字典的key值做为头行数据 csv_write.writerow(rows[0].keys()) # 循环里面的字典,将value作为数据写入进去 for row in rows: csv_write.writerow(row.values()) # 关闭打开的文件 f.close() 

这是csv格式数据,以逗号分隔

这里写图片描述

先新建excel表格

这里写图片描述

找到数据里面的自文本,导入上面的csv格式文件
这里写图片描述
选择逗号分隔,下面是数据预览,没问题就可以点下一步了
这里写图片描述
按照上面不走来即可,就可以看到数据已经转为表格形式了。
这里写图片描述




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232338.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月17日 下午2:01
下一篇 2025年10月17日 下午2:22


相关推荐

  • Spring boot + Spring Security 多种登录认证方式配置(一)

    Spring boot + Spring Security 多种登录认证方式配置(一)

    2021年8月31日
    189
  • JavaScript中prototype用法

    JavaScript中prototype用法1概述大部分面向对象的编程语言,都是以类class作为对象的基础语法,js语言不是如此,它的面向对象编程基于‘原型对象’。首先说说构造函数的缺点:js通过构造函数生成新的对象,因此构造函数可以视为独享的模版。实例对象的属性和方法,可以定义在构造函数内部概述构造函数的缺点JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定

    2022年7月22日
    15
  • js如何生成二维码_jquery 生成二维码无法识别

    js如何生成二维码_jquery 生成二维码无法识别前言最近根据自己的需求寻找到了一款简单易用的生成二维码插件,特此分享一、使用步骤1.下载插件npmiqrcodejs2或yarnaddqrcodejs2二、vue中使用1.vue2<template><div><divref=”qrcodeDom”></div><button@click=”show”>展示二维码</button><bu.

    2022年10月17日
    4
  • invoke和begininvoke 区别

    invoke和begininvoke 区别一直对 invoke 和 begininvoke 的使用和概念比较混乱 这两天看了些资料 对这两个的用法和原理有了些新的认识和理解 nbsp 首先说下 invoke 和 begininvoke 的使用有两种情况 nbsp 1 control 中的 invoke begininvoke nbsp 2 delegrate 中的 invoke begininvoke nbsp nbsp nbsp 这两种情况是不同的 我们这里要讲的

    2026年3月18日
    3
  • SQLyog 使用教程

    SQLyog 使用教程mysql 数据库操作 创建数据库 createdataba 创建表 createtablet user idintprimary increment usernamevarc 50 notnull passward varchar 20 remarkvarcha 50 gendarvarcha 20 删除表 droptabletes 插入表

    2026年3月19日
    1
  • Android 实现锚点定位

    Android 实现锚点定位

    2022年4月3日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号