参考文章1:将excel表格数据转换为字典
字符串 & 字典 & Json 对比

# -*- coding: utf-8 -*-# json数据类型a = "python"   # 'python'字符串b = {"name":"python"}   # {'name':'python'} 字典c = '{"name":"python"}'   # json数据类型字符串(始终还是字符串)

1、用pandas将Excel转字典

# -*- coding: utf-8 -*-
# excel转字典import pandas as pddict = {}
data = pd.read_excel(r're.xlsx')
data.fillna("",inplace = True)list = []for i in data.index.values:line = data.loc[i,['年份','分类','月份','A市','B市','C市']].to_dict()list.append(line)
dict['data'] = list
print(dict)

运行结果

D:\python\Python3.9.6\python.exe "E:/Data Analysis/Pycharm/Web Scraping/tr_json/t2.py"
{'data': [{'年份': '2018年', '分类': '游客人数', '月份': '1月', 'A市': 562, 'B市': 264, 'C市': 481}, {'年份': '2018年', '分类': '旅游收入', '月份': '2月', 'A市': 294, 'B市': 186, 'C市': 985}, {'年份': '2018年', '分类': '游客人数', '月份': '1月', 'A市': 264, 'B市': 241, 'C市': 156}, {'年份': '2018年', '分类': '旅游收入', '月份': '2月', 'A市': 502, 'B市': 564, 'C市': 594}]}Process finished with exit code 0

格式化校验报错

问题:json格式双引号

2、用xlrd将Excel转字典

xlrd.biffh.XLRDError:Excel xlsx file;not support
报错参考1
AttributeError: ‘ElementTree‘ object has no attribute ‘getiterator‘
报错参考2

# -*- coding: utf-8 -*-# xlrd -- excel转字典import xlrd
def get_data(sheet1):data = xlrd.open_workbook(r're.xlsx')table = data.sheets()[sheet1]# print(table)nor = table.nrowsnol = table.ncolsdict = {}for i in range(1,nor):for j in range(nol):title = table.cell_value(0,j)value = table.cell_value(i,j)dict[title] = valueyield dictif __name__ == '__main__':for i in get_data(0):print(i)

运行结果

D:\python\Python3.9.6\python.exe "E:/Data Analysis/Pycharm/Web Scraping/tr_json/t2.py"
{'年份': '2018年', '分类': '游客人数', '月份': '1月', 'A市': 562.0, 'B市': 264.0, 'C市': 481.0}
{'年份': '2018年', '分类': '旅游收入', '月份': '2月', 'A市': 294.0, 'B市': 186.0, 'C市': 985.0}
{'年份': '2018年', '分类': '游客人数', '月份': '1月', 'A市': 264.0, 'B市': 241.0, 'C市': 156.0}
{'年份': '2018年', '分类': '旅游收入', '月份': '2月', 'A市': 502.0, 'B市': 564.0, 'C市': 594.0}Process finished with exit code 0

统一解决双引号问题
参考:解决python控制台输出单引号如何变成双引号的问题

# -*- coding: utf-8 -*-import json
import os
import randomlist01 = {"esm_id": random.randint(10000, 100000), "one": "01", "a": "4"}
list02 = {"esm_id": random.randint(10000, 100000), "two": "02", "b": "5"}
list03 = {"esm_id": random.randint(1000, 100000), "three": "03", "c": "6"}def lists(li, ran):arr = []for k in range(1, ran):arr.insert(k, li)return arr# print arr# os.system('pdf2txt.py -o "E:\PDF\output.txt" %s' % (strSource))# print(lists(list02,101))
print(json.dumps(lists(list02, 101)))

运行结果

D:\python\Python3.9.6\python.exe "E:/Data Analysis/Pycharm/Web Scraping/tr_json/t2.py"
[{"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}, {"esm_id": 75651, "two": "02", "b": "5"}]Process finished with exit code 0

参考:(在python中输出双引号问题的解决方案)不是我想要的

a="Albert Einstein once said,"
b="A person who never made a mistake never tried anything new."
full=a+"\""+b+"\""
print(full)
full=a+'"'+b+'"'
print(full)

参考:(python 从excel中读取数据转换成json字符串)
就是这样的效果

#-*- encoding:utf-8 -*-
import json
import xlrddef readExcel():# 打开excel表单filename = u're.xlsx'excel = xlrd.open_workbook(filename)# 得到第一张表单sheet1 = excel.sheets()[0]#找到有几列几列nrows = sheet1.nrows #行数ncols = sheet1.ncols #列数totalArray=[]title=[]# 标题for i in range(0,ncols):title.append(sheet1.cell(0,i).value);#数据for rowindex in range(1,nrows):dic={}for colindex in range(0,ncols):s=sheet1.cell(rowindex,colindex).valuedic[title[colindex]]=stotalArray.append(dic);return json.dumps(totalArray,ensure_ascii=False)print(readExcel())

运行结果

[{"年份": "2018年", "分类": "游客人数", "月份": "1月", "A市": 562.0, "B市": 264.0, "C市": 481.0}, {"年份": "2018年", "分类": "旅游收入", "月份": "", "A市": 294.0, "B市": 186.0, "C市": 985.0}, {"年份": "2018年", "分类": "游客人数", "月份": "1月", "A市": "", "B市": 241.0, "C市": 156.0}, {"年份": "2018年", "分类": "旅游收入", "月份": "2月", "A市": 502.0, "B市": 564.0, "C市": 594.0}]

参考:Python: 使用xlrd读取Excel文件

参考:JSON日期格式转换

修改:三个表同时转换

# -*- coding: utf-8 -*-
# Excel to json by xlrdimport xlrd
def get_data(sheet1):data = xlrd.open_workbook(r'try_data.xlsx')table = data.sheets()[sheet1]nor = table.nrowsnol = table.ncolsdict = {}# 资产损益表for i in range(1,4):   # 指定损益表key从第一行到第n列for j in range(nol):   # 指定损益表value遍历key = table.cell_value(0,j)value = table.cell_value(i,j)dict[key] = valueyield dict# 资产负债表for i in range(5,8):for j in range(nol):key = table.cell_value(0, j)value = table.cell_value(i, j)dict[key] = valueyield dict# 现金流量表for i in range(9,12):for j in range(nol):key = table.cell_value(0, j)value = table.cell_value(i, j)dict[key] = valueyield dictif __name__ == '__main__':for i in get_data(0):print(i)

参考:(Excel中文本替换函数)解决符号替换问题,单引号替换为双引号

参考:Python+xlrd对excel表格数据处理统计

参考:用python打包exe应用程序-PyInstaller

参考:python界面-用python编写简单ui界面窗口

参考:常用的格式化字符串:

符号 说明
%d 整数
%f%F 浮点数
%e%E 科学计数
%g%G e 和%f/%E 和%F 的简写
%% 输出%

参考:bytes类型转字符串 字典字符串之间的转换 eval 函数

Python实现Excel转JSON相关推荐

  1. Python 实现Excel 转 JSON

    Python Excel 转 JSON 代码: import xlrd #需要1.2.0版本的,2.0以上的版本只能读取.xls类型的文件 import csv# 读取文件(.xlsx .xls .c ...

  2. python转json到excel_【Python】EXCEL转Json

    在网上查阅了好几个EXCEL转Json的代码,有的是仅支持一个层级的Json(这个就不支持多层级的json),有的太过复杂看的不是很懂,所以就自己写了一个目前符合自己使用的代码. 我先讲下实现的方式. ...

  3. 【Python】EXCEL转Json

    在网上查阅了好几个EXCEL转Json的代码,有的是仅支持一个层级的Json(这个就不支持多层级的json),有的太过复杂看的不是很懂,所以就自己写了一个目前符合自己使用的代码.我先讲下实现的方式. ...

  4. python 读取excel 生成json 读取json

    # _*_ coding: utf-8 import xlrd,sys import pickle import json data=xlrd.open_workbook("d:/test/ ...

  5. excel转json (树状结构)

    excel转json (树状结构) 一.python读取excel 转json 目的:在于将excel的数据转换成json格式. import xlrd, jsondef read_xlsx_file ...

  6. python与excel的关系-使用python对excle和json互相转换的示例

    python 版本:2.7 只是读取excel的话可以直接使用xlrd 1.excle to json 代码如下 # -*-coding:utf8 -*- import xlrd from colle ...

  7. Python Excel到JSON的转换

    There are many ways to convert an excel file to JSON data. In this tutorial, we will look into two p ...

  8. Python|excel表格数据一键转json格式小工具|支持xlsx、xls格式转json|【源码+解析】

    背景    最近在使用JavaScript编写一些浏览器RPA脚本,脚本使用过程中遇到一些问题,脚本使用的数据往往存放在excel表,但运行时只能读取json数据,导致频繁人工excel转json,效 ...

  9. Python代码实现Excel转JSON

    题记 项目需求需要用到Excel转JSON,第一时间想到的就是尘封了将近一年的python,一直在JavaJava,python早忘光了,想立刻开始动手却又不敢,最后确认,用python来完成操作Ex ...

最新文章

  1. 用了三年 ThreadLocal 今天才弄明白其中的道理
  2. python实现二叉堆中的大顶堆(大根堆)
  3. CentOS7中通过二进制文件与配置环境变量的方式安装Node
  4. C++ 函数的引用传递
  5. mysql between 等于_MySQL中BETWEEN子句的用法详解
  6. 中国移动也要办电竞大赛了!联合腾讯网易办首届电竞大赛
  7. Python+pywin32批量转换Word文件为PDF文件
  8. 设计模式(二十三)—— 模板方法
  9. 我这么玩Web Api(一):帮助页面或用户手册(Microsoft and Swashbuckle Help Page)
  10. 计时器 【扩展欧几里得+BSGS】
  11. js读取excel,xlsx,xls 表格,转成JSON数据
  12. Codeforces-1684 D: Traps 【贪心、排序】
  13. 圆的面积函数定义及调用
  14. 苹果手机读取html文件,教你如何解决“iTunes不能读取iPhone内容”的问题
  15. 最新二开微信表情包小程序+前后端 【去授权版】
  16. 小数阶乘怎么用c语言计算器,自编科学计算器 支持多次方 多次开放 阶乘 部分数学函数...
  17. 最适合跑步用的耳机有哪些、精选五款最优秀的跑步耳机推荐
  18. 【科普】72名图灵奖获得者的成就
  19. 什么是示波器?示波器的使用方法图解
  20. UI设计入门:五种基本APP界面类型【萧蕊冰】

热门文章

  1. 2016word排版小技巧
  2. 中国人民大学与加拿大女王大学金融硕士程思远:人生不要太匆匆
  3. PhotoShop基础使用
  4. 用HTML+CSS+JS+一丢丢JQuery简单仿制了一个魔兽世界商店的页面(੭ ᐕ)੭(做着玩的)
  5. 7.Linux文本查看(cat more head tail)详解
  6. UVa 109 - SCUD Busters(凸包计算)
  7. 开源之夏 2022 开启,提交项目当导师
  8. win7系统开启snmp服务器配置,简单几招教你win7开启 snmp服务
  9. Advanced IP Scanner –免费的轻量级Windows端口扫描器
  10. [转贴]百度和谷歌:局域网战胜互联网