使用python对excle和json互相转换的示例
python版本:2.7
只是读取excel的话可以直接使用xlrd
1、excletojson
代码如下
#-*-coding:utf8-*-
importxlrd
fromcollectionsimportOrderedDict
importjson
importcodecs
file_name=raw_input('请输入要转换的excle文件路径:')
wb=xlrd.open_workbook(file_name)
dict_list=[]
sh=wb.sheet_by_index(0)
title=sh.row_values(0)
forrownuminrange(1,sh.nrows):
rowvalue=sh.row_values(rownum)
single=OrderedDict()
forcolnuminrange(0,len(rowvalue)):
print(title[colnum],rowvalue[colnum])
single[title[colnum]]=rowvalue[colnum]
dict_list.append(single)
j=json.dumps(dict_list)
withcodecs.open(file_name[:-5]'.json',"w","utf-8")asf:
f.write(j)
2、jsontoexcle
代码如下
注意:标题会写在最后一行,主要针对字段不同的json数据。
importjson
importos
fromopenpyxlimportWorkbook
wb=Workbook()
ws=wb.active
cols=[]
defjson2excel(jsfile,excfile):
#读取json数据
a=1
ifos.path.exists(jsfile):
withopen(jsfile,'r')asfp:
whileTrue:
line=fp.readline()
ifnotline:
break
jsdata=json.loads(line)
forkinjsdata.keys():
ifknotincols:
cols.append(k)
rowdata=[]
forcolincols:
rowdata.append(jsdata.get(col))
print'正在写入的行数:'a
ws.append(rowdata)#写行
a+=1
ws.append(cols)#标题
print('保存中')
wb.save(excfile)#保存
if__name__=='__main__':
importsys
iflen(sys.argv)==3:
jsfile=sys.argv[1]
excfile=sys.argv[2]
json2excel(jsfile,excfile)
else:
print("Usage:pythonwriteExc.pyxx.jsonxx.xlsx")
以上这篇使用python对excle和json互相转换的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。