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的主要内容,如果未能解决你的问题,请参考以下文章

python 读取配置文件转成JSON连接数据库

python读取excel数据转为json格式

c# 读取json的问题,JObject不能强转成JArray

Python3 关于excel 文件格式xls之读取写入和追加

使用 python pandas 读取 json 文件并更新现有的 excel

教你一招:让你的json文件更好看