参考链接:
https://www.cnblogs.com/zjzyh/p/5769069.html
https://blog.csdn.net/Nick_Li_/article/details/90139383
关于collections.OrderedDict():https://www.cnblogs.com/gide/p/6370082.html
是一种有序的字典
代码如下:
excel2json.py
1 import xlrd 2 import collections 3 import json 4 import codecs 5 6 # excelPath:读取的excel路径 7 # jsonPath:输出的json路径 8 # keyRow:key所处的行 9 # typeRow:type所处的行 10 # valueRow:value开始的行 11 def excel2json(excelPath, jsonPath, keyRow=1, typeRow=2, valueRow=3): 12 wb = xlrd.open_workbook(excelPath) 13 sheet = wb.sheet_by_index(0) 14 keys = sheet.row_values(keyRow) 15 types = sheet.row_values(typeRow) 16 data = {} 17 18 for row in range(valueRow,sheet.nrows): 19 rowData = sheet.row_values(row) 20 temp = collections.OrderedDict() 21 for col in range(sheet.ncols): 22 key = keys[col] 23 colType = types[col] 24 value = rowData[col] 25 if colType == 'json': 26 temp[key] = json.loads(value) 27 elif colType == 'int': 28 temp[key] = int(value) 29 else: #string float在读取excel时已区分 30 temp[key] = value 31 data[int(rowData[0])] = temp 32 33 jsonStr = json.dumps(data,ensure_ascii=False,indent=4) 34 with codecs.open(jsonPath,"w","utf-8") as f: 35 f.write(jsonStr) 36 37 return jsonStr
测试:
test.py
1 import excel2json 2 import json2lua 3 import json 4 5 jsonStr = excel2json.excel2json("./xls/zz.xls", "./json/zz.json") 6 print(jsonStr)
表格:
输出:
1 { 2 "2": { 3 "id": 2, 4 "name": "一", 5 "desc": [ 6 [ 7 1, 8 2 9 ], 10 [ 11 3, 12 4 13 ], 14 5, 15 [ 16 6, 17 7 18 ] 19 ], 20 "para": 1.2 21 }, 22 "4": { 23 "id": 4, 24 "name": "二", 25 "desc": { 26 "id": 5, 27 "num": [ 28 1 29 ] 30 }, 31 "para": 3.45 32 }, 33 "6": { 34 "id": 6, 35 "name": "三", 36 "desc": [ 37 { 38 "a": 10 39 } 40 ], 41 "para": 6.0 42 } 43 }
分类:
Unity工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-08-04 [Unity插件]Lua行为树(一):BehaviorDesigner源码分析