python 读取excel 数据,并转为dict

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 读取excel 数据,并转为dict相关的知识,希望对你有一定的参考价值。

代码如下

# -*- coding:utf-8 -*-
import xlrd
from datetime import datetime
from xlrd import xldate_as_tuple

class XlrdOp:
    def __init__(self, fileName=None):
        if fileName is None:
            return
        self.readbook = xlrd.open_workbook(fileName) #打开Excel文件,实例化为readbook

    def get_sheet_names(self):
        return self.readbook.sheet_names()

    def get_dict(self):
        data = {}
        for i in self.get_sheet_names():
            table = self.readbook.sheet_by_name(i)
            row_num = table.nrows
            col_num = table.ncols
            s = []
            key = table.row_values(0)  # 这是第一行数据,作为字典的key值
            if row_num <= 1:
                print("没数据")
                continue
            j = 1
            for z in range(row_num-1):
                d = {}
                for x in range(col_num):  # 把key值对应的value赋值给key,每行循环
                    ctype = table.cell(j, x).ctype
                    cell = table.cell_value(j, x)
                    if ctype == 2 and cell % 1 == 0.0:  # ctype为2且为浮点
                        cell = int(cell)  # 浮点转成整型
                        cell = str(cell)  # 转成整型后再转成字符串,如果想要整型就去掉该行
                    elif ctype == 3:      # 日期类型转换,否则会显示为int
                        date = datetime(*xldate_as_tuple(cell, 0))
                        cell = date.strftime(‘%Y/%m/%d‘)
                    elif ctype == 4:
                        cell = True if cell == 1 else False
                    d[key[x]] = cell
                j += 1
                # 把字典加到列表中
                s.append(d)
            data[i] = s
        return data

if __name__ == "__main__":
    xp = XlrdOp(‘/Users/qinshixu/cmdb/static/files/NetDevice_3.xlsx‘)
    print(xp.get_sheet_names())
    print(xp.get_dict())
  1. NetDevice_3.xlsx 文件内容
    技术图片
  2. 执行结果
    技术图片

以上是关于python 读取excel 数据,并转为dict的主要内容,如果未能解决你的问题,请参考以下文章

Python读取excel中的一(多)列并转为数组

Python读取Excel表格数据并以字典dict格式存储

python读取excel数据转为json格式

如何将请求参数转为json格式

Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出

通过 json.loads 将 Python dict 转为 JSON: