首页 > 编程语言 >python读取xlsx文件并转化为 json 数据

python读取xlsx文件并转化为 json 数据

时间:2022-09-04 14:45:47浏览次数:70  
标签:xlsx 00 sheet python money 09 json 2022 id

from openpyxl import load_workbook
import os
from re import findall
import json


# 读取所有的sheet目录
def read_xlsx(path="./"):
    lis = os.listdir(path)
    base_xlsx = []
    for i in lis:
        result = findall('.xlsx', i)
        if len(result):
            base_xlsx.append(i)
    return base_xlsx


# 获取sheet的行
def get_sheet_columns(sheet):
    index = 1
    ret = []
    col = sheet.cell(1, index)
    while col.value:
        ret.append(col.value)
        index += 1
        col = sheet.cell(1, index)
    return ret


# 处理单个单元格
def handle(filepath):
    ret_obj = {}
    wb = load_workbook(filepath)
    sheet0 = wb.worksheets[0]
    columns = get_sheet_columns(sheet0)
    for sheet in wb.worksheets:
        sheet_obj = []
        for row in sheet.iter_rows(min_row=2):
            row_obj = {}
            for k in range(0, len(columns)):
                row_obj[columns[k]] = str(row[k].value)
            sheet_obj.append(row_obj)
        ret_obj[sheet.title] = sheet_obj

    return ret_obj


if __name__ == '__main__':
    # 读取到所有的sheet文件
    xlsx_filelist = read_xlsx()
    # 处理单个sheet
    for i in xlsx_filelist:
        obj = handle(i)
        result = json.dumps(obj)
        print(result)

读取结果为

{
  "Sheet1": [
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    },
    {
      "id": "1",
      "id_order": "123124",
      "id_user": "1",
      "money": "1200",
      "refund_money": "400",
      "time_create": "2022-09-04 00:00:00",
      "time_finish": "2022-09-05 00:00:00"
    }
  ]
}

 

# 有一个使用前提是, 无论是 sheet 名称 还是 表格头的名称, 都不建议是 中文, 因为 dumps 会对中文进行编码

标签:xlsx,00,sheet,python,money,09,json,2022,id
From: https://www.cnblogs.com/fmg0224/p/16655077.html

相关文章

  • Python入门系列(九)pip、try except、用户输入、字符串格式
    pip包含模块所需的所有文件。检查是否安装了PIP$pip--version安装包$pipinstallpackage_name使用包importpackage_name删除包$pipuninstallcamelcase......
  • 10个python初学者常犯的错误
    下面10个python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够pythonic,因为python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性。......
  • 总结90条写Python程序的建议
    首先建议1、理解Pythonic概念—-详见Python中的《Python之禅》建议2、编写Pythonic代码(1)避免不规范代码,比如只用大小写区分变量、使用容易混淆的变量名、害怕过......
  • 掌握 Python 中下划线的 5 个潜规则
    本文将介绍Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(namemangling)的工作原理,以及它如何影响你自己的Python类。单下划线和双下划线在Python......
  • 40 个好用的 Python 技巧
    Python简单易学,现今非常流行。Python被用于各种场景,如数据科学、机器学习、web开发、脚本编制、自动化等等。目录01列表推导式02枚举函数03通过函数返回多个值04......
  • 10 个实用的 Python 编程技巧
    字典翻转首先我们来看字典的翻转,假设我们有下面类似的一个字典对象与数据car_dict={"brand":"Tesla","model":"ModelY","year":2017}倘若我们......
  • Python 中的深拷贝和浅拷贝
    一、结论首先说结论:深拷贝出来的对象就是完完全全的新对象,不管是对象本身(id),还是对象中包含的子对象,都和原始对象不一样;浅拷贝出来的对象就是外新内旧的对象,对象本身(id......
  • Python 中的冒泡排序和解释 - 教程。
    Python中的冒泡排序和解释-教程。冒泡排序是您比较相邻值并相应地交换它的地方。这种排序算法有一些应用,其中一些是对数据库中的数据进行排序,例如:按价格对亚马逊产品进......
  • Python|使用Python实现png格式文件转tif格式文件
    一、TIF/TIFF介绍标签图像文件格式(TagImageFileFormat,简写为TIFF)是一种灵活的位图格式,主要用来存储包括照片和艺术图在内的图像,是一种常见的遥感影像存储格式。二、......
  • Python中的石头剪刀布游戏
    Python中的石头剪刀布游戏继续阅读WordPress继续阅读知乎版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明本文链接:https:/......