将excel电子表格转换为json
Posted
技术标签:
【中文标题】将excel电子表格转换为json【英文标题】:Converting excel spreadsheet to json 【发布时间】:2021-05-27 00:40:35 【问题描述】:我想将 Excel 电子表格数据转换为 JSON 文件。这是我目前拥有的代码:
数据 excel spreadsheet
代码
import xlrd
from collections import OrderedDict
import json
wb = xlrd.open_workbook('./file1.xlsx')
sh = wb.sheet_by_index(0)
data_list = []
for rownum in range(1, sh.nrows):
data = OrderedDict()
row_values = sh.row_values(rownum)
data['name'] = row_values[0]
data['description'] = row_values[1]
data_list.append(data)
data_list = 'columns': data_list
j = json.dumps(data_list)
with open('seq1.json', 'w') as f:
f.write(j)
输出
"columns": ["name": "FILEID", "description": "FILETYPE"]
预期输出
"columns": [
"name": "fileid",
"description": "FILEID"
,
"name": "filetype",
"description": "FILETYPE"
,
"name": "stusab",
"description": "STUSAB"
,
"name": "chariter",
"description": "CHARITER"
,
"name": "sequence",
"description": "SEQUENCE"
,
"name": "logrecno",
"description": "LOGRECNO"
],
“名称”列应显示第一行,而“描述”列应显示第二行。
我可以在我的函数中进行哪些修改以获得我正在寻找的输出?
【问题讨论】:
【参考方案1】:你应该尝试一下:
import excel2json
excel2json.convert_from_file('file.xlsx')
【讨论】:
我知道这个库,但我希望我的函数足够灵活,以便在我前进时添加更多列。【参考方案2】:你可以使用熊猫
import pandas as pd
df = pd.read_excel('./file1.xlsx')
with open('seq1.json', 'w') as f:
f.write(df.to_json())
【讨论】:
【参考方案3】:您需要遍历列,而不是行
import xlrd
from collections import OrderedDict
import json
wb = xlrd.open_workbook('./file1.xls')
sh = wb.sheet_by_index(0)
data_list = []
data = OrderedDict()
for colnum in range(0, sh.ncols):
data['name'] = sh.row_values(0)[colnum]
data['description'] = sh.row_values(1)[colnum]
data_list.append(data.copy())
data_list = 'columns': data_list
j = json.dumps(data_list)
with open('seq1.json', 'w') as f:
f.write(j)
【讨论】:
谢谢!这更有意义,不知道为什么我忽略了这一点。以上是关于将excel电子表格转换为json的主要内容,如果未能解决你的问题,请参考以下文章
自动化 Excel 工作 - 将平面文件转换为 Excel 电子表格
将excel电子表格读入pandas DataFrame时将数字转换为字符串
导入 Excel 电子表格时 MS Access 2013 类型转换失败