python将excel数据解析成json
1、需求场景
把excel表格里面的数据 读取出来当json 的value值。
key值自己定义的。
2、安装xlrd库
在win上 cmd 中 直接 pip install xlrd 成功即可。
3、代码实现
import xlrd
def readExcelData():
data = ['"username":"admin"','"password":"admin"', '"nodeId":"1"']
#key值
keyData=['tag_name','annotation','reg_type','address','byte_size','data_type','operate_flag','data_seq']
# 读取excel表的数据
workbook = xlrd.open_workbook(r'C:\1.xlsx')
# 选取需要读取数据的那一页
sheet = workbook.sheet_by_index(0)
# 获得行数和列数
rows = sheet.nrows
cols = sheet.ncols
# 创建一个数组用来存储excel中的数据
p = []
for i in range(0, rows):
d={}
for j in range(0,cols):
q=keyData[j] #自己设置的key
d[q] = sheet.cell(i, j).value #具体的数据
ap = []
for k, v in d.items():
if isinstance(v, float): # excel中的值默认是float通过'"%s":%d','"%s":"%s"'格式化数组
# ap.append('"%s":%d' % (k, v)) 得到具体的类型
ap.append('"%s":"%s"' % (k, str(int(v)))) #转为字符串
else:
ap.append('"%s":"%s"' % (k, v))
s = '{%s}' % (','.join(ap)) #把list转成用,分隔的字符串 在把字符串套了一个花括号
p.append(s)
t = '[%s]' % (','.join(p)) # 格式化
t2='"datarules":'+t
data.append(t2)
t3='{%s}' % (','.join(data)) # 格式化
fh = open(r'C:\1.json',"w")
fh.write(t3)
fh.close()
readExcelData()