一:python3.6,安装xlrd模块(windows 环境下easy_install-3.6.exe xlrd)
二:代码如下:
# -*- coding: utf-8 -*-
import xlrd
import json
def open_excel(file):
"""
打开execl文件
:param file: excel文件名字
:return:
"""
try:
data = xlrd.open_workbook(file)
return data
except Exception as e:
print("Error: " + str(e))
def parse_by_sheet_name(file, sheet_name):
"""
获取Excel数据
:param file: Excel文件名称
:param sheet_name: sheet页名称
:return: 该sheet页的数据(数组格式,每个成员是一个字典)
"""
data = open_excel(file)
table = data.sheet_by_name(sheet_name)
nrows = table.nrows
row_list = []
for i in range(0, nrows):
row_value = table.row_values(i)
data_dict = dict()
# 对应Excel的第一列数据和第二列数据
data_dict["ErrCode"] = int(row_value[0])
data_dict["ErrMsg"] = row_value[1]
row_list.append(data_dict)
return row_list
def write_to_json_file(data, file_name):
"""
写入json文件
:param data: json数据
:param file_name: json文件名称
:return:
"""
try:
# 对中文编码处理,使得生成的json文件中中文能正常显示,而不是以Unicode码显示
final_json = json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False)
with open(file_name, 'w') as fObj:
fObj.write(final_json)
except Exception as e:
print("Error: " + str(e))
if __name__ == '__main__':
excel_data = parse_by_sheet_name("test.xlsx", "Sheet1")
print(excel_data)
final_data = dict()
final_data["version"] = int(1)
final_data["contents"] = excel_data
write_to_json_file(final_data, "test.json")
三:输出
Excel文档:
生成的json文件: