【Python】把excel文件中的数据转化为字典格式存起来

【需求描述】

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

 

【步骤】

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

date name age
20200617 xiaowang 16
20200618 xiaozhang 18

(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)    

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值