python3 基于pandas读写Excel

2019-08-02  本文已影响0人  Galileo_404

基于pandas读取execl
读取文件类似


image.png

保存json文件:


image.png

具体文件


image.png
# -*- coding: UTF-8 -*-

import pandas as pd
import json
import os

#读取execl,保存为字典数组
def read_excel(file_path,sheet_name='lan'):
    file = pd.read_excel(file_path, sheet_name=sheet_name)
    # 设置空值
    file = file.fillna("")

    lan_list = [[] for i in range(2)]

    for row in range(len(file.values)):
        for colu in range(len(file.values[row])):
            colu_data = file.values[row][colu]

            # 空值跳过
            if colu_data == "":
                continue

            if colu == 0:
                code = colu_data

            else:
                dict_data = {}
                dict_data['code'] = int(code)
                dict_data['triggerMessage'] = colu_data.replace("\r", "")

                #扩充数组
                if colu>=len(lan_list):
                    lan_list.append([])

                #每读取一个语言保存在list中
                lan_list[colu-1].append(dict_data)

    return lan_list


#保存为json本地文件
def write_json(lan_source_list,lan_title,save_path):
    
    print("save_path", save_path)
    if not os.path.exists(save_path):  # 判断当前路径是否存在,没有则创建文件夹
        os.makedirs(save_path)

    #创建语言
    for index in range(len(lan_title)):
        json_file = save_path+os.sep+lan_title[index]+".json"

        lan_data = lan_source_list[index]

        # 保存json
        with open(json_file, 'w', encoding="utf-8") as f:
            json.dump(lan_data, f, ensure_ascii=False)

if __name__ == '__main__':
    
    lan_title = ['zh', 'zh_tw', 'en', 'korean']
    file_path = os.path.abspath('.')+os.sep+"lan.xlsx"
    sheet_name = "lan"

    save_path = os.path.abspath('.')+os.sep+"result"
    
    write_json(read_excel(file_path=file_path),lan_title=lan_title,save_path=save_path)

其他方式,参考Python-Excel 模块哪家强?

上一篇下一篇

猜你喜欢

热点阅读