python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python的excel转化为字典

Python把excel文件数据转化为字典格式存储详解

作者:兔子爱读书

这篇文章主要介绍了Python把excel文件数据转化为字典格式存储详解,在Python中有时候需要操作excel表格的数据,把excel表格转化为字典存起来,方便读取,今天我们就来看看如何转换,需要的朋友可以参考下

Python把excel文件数据转化为字典格式存储

【需求描述】

把excel表格转化为字典存起来,方便读取。

【步骤】

例如下面表格为“值班表.xlsx”

datenameage
20200617xiaowang16
20200618xiaozhang18

(1)把“值班表.xlsx”另存为无格式的“值班表.csv”。默认是以逗号作为分隔符。

(2)把第一列的日期作为关键字,构建空字典。例如,dic = {'20200617': {}, '20200618':{}}。

(3)关键字对应的值为二级字典,二级关键字为name和age。

最终字典为

dic = {'20200617': {'name': 'xiaowang', 'age':16}, '20200618':{'name': 'xiaozhang', 'age':18}}

【代码】

def get_dic_from_csv(file_path):
    with open(file_path, 'r') as fd:
        raw_data = fd.readlines()
    headline = raw_data[0].strip().split(",")
    data = [it.strip().split(",") for it in raw_data[1:]]
    keys = [it[0] for it in data]   # (行名)日期是一级索引
    sub_keys = headline[1:]          # (列名)标题是二级索引
    dic = dict(zip(keys, [{} for i in range(len(keys))]))
    for line in data:
        key = line[0]
        if dic[key] != {}:
            print("Error: repeated values", key, dic[key])
        else:
            value = dict(zip(sub_keys, [int(it) for it in line[1:]]))
            dic[key] = value
    import os, json
    out_path = os.path.splitext(file_path)[0] + ".json"
    with open(out_path, "w") as fd:
        json.dump(dic, fd)    

到此这篇关于Python把excel文件数据转化为字典格式存储详解的文章就介绍到这了,更多相关Python的excel转化为字典内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文