python读取json文件转成excel
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python读取json文件转成excel相关的知识,希望对你有一定的参考价值。
python处理excel有xlwt,openpyxl等,而xlwt只支持excel2003,也就是最多有256列,而openpyxl则支持excel2007以上,最多65536列。下面是两个的程序。
xlwt为
import json
import xlwt
def readFromJson(file):
with open(file, ‘r‘, encoding=‘utf8‘) as fr:
jsonData = json.load(fr)
return jsonData
def writeToExcel(file):
json = readFromJson(file)
excel = xlwt.Workbook()
sheet1 = excel.add_sheet(‘sheet1‘, cell_overwrite_ok=True)
sheet2 = excel.add_sheet(‘sheet2‘, cell_overwrite_ok=True)
length = len(json)
i = 0
while i < length:
eachLine = json[i]
questions = eachLine[‘questions‘]
answer = eachLine[‘answer‘]
questionSize = len(questions)
if (questionSize > 256):
print(i + 1, questionSize)
j = 0
while j < questionSize:
ques = questions[j]
eachQues = ques[‘question‘]
if j < 256:
sheet1.write(i, j, eachQues)
if j == 0:
sheet2.write(i, 0, eachQues)
j = j + 1
sheet2.write(i, 1, answer)
i = i + 1
excel.save(‘doc/answer.xls‘)
if __name__ == ‘__main__‘:
writeToExcel(‘doc/kb.json‘)
openpyxl为
import openpyxl
import json
def readFromJson(file):
with open(file, ‘r‘, encoding=‘utf8‘) as fr:
jsonData = json.load(fr)
return jsonData
def writeToExcel(file):
json = readFromJson(file)
excel = openpyxl.Workbook()
sheet1 = excel.create_sheet(‘sheet1‘, index=0)
sheet2 = excel.create_sheet(‘sheet2‘, index=0)
length = len(json)
i = 0
while i < length:
eachLine = json[i]
questions = eachLine[‘questions‘]
answer = eachLine[‘answer‘]
questionSize = len(questions)
j = 0
while j < questionSize:
ques = questions[j]
eachQues = ques[‘question‘]
sheet1.cell(row=i + 1, column=j + 1, value=eachQues)
if j == 0:
sheet2.cell(row=i + 1, column=1, value=eachQues)
j = j + 1
sheet2.cell(row=i + 1, column=2, value=answer)
i = i + 1
excel.save(‘doc/answer.xlsx‘)
if __name__ == ‘__main__‘:
writeToExcel(‘doc/kb.json‘)
其核心在于读取json的方法和写入excel的方法。
以上是关于python读取json文件转成excel的主要内容,如果未能解决你的问题,请参考以下文章
c# 读取json的问题,JObject不能强转成JArray
Python3 关于excel 文件格式xls之读取写入和追加