python 版本:2.7
只是讀取excel的話可以直接使用xlrd
1、excle to json
代碼如下
# -*-coding:utf8 -*-import xlrdfrom collections import OrderedDictimport jsonimport codecsfile_name=raw_input('請輸入要轉換的excle文件路徑:')wb = xlrd.open_workbook(file_name)dict_list = []sh = wb.sheet_by_index(0)title = sh.row_values(0)for rownum in range(1, sh.nrows): rowvalue = sh.row_values(rownum) single = OrderedDict() for colnum in range(0, len(rowvalue)): print(title[colnum], rowvalue[colnum]) single[title[colnum]] = rowvalue[colnum] dict_list.append(single) j = json.dumps(dict_list)with codecs.open(file_name[:-5]'.json',"w","utf-8") as f: f.write(j)
2、json to excle
代碼如下
注意:標題會寫在最后一行,主要針對字段不同的json數據。
import jsonimport osfrom openpyxl import Workbookwb = Workbook()ws = wb.activecols = []def json2excel(jsfile, excfile):# 讀取json數據a = 1if os.path.exists(jsfile):with open(jsfile, 'r') as fp:while True:line = fp.readline()if not line:breakjsdata = json.loads(line)for k in jsdata.keys():if k not in cols:cols.append(k)rowdata = []for col in cols:rowdata.append(jsdata.get(col))print '正在寫入的行數:'aws.append(rowdata) # 寫行a += 1ws.append(cols) # 標題print('保存中')wb.save(excfile) # 保存if __name__ == '__main__':import sysif len(sys.argv) == 3:jsfile = sys.argv[1]excfile = sys.argv[2]json2excel(jsfile, excfile)else:print("Usage: python writeExc.py xx.json xx.xlsx")
以上這篇使用python對excle和json互相轉換的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
|
新聞熱點
疑難解答