Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解
Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲
【需求描述】
把excel表格轉(zhuǎn)化為字典存起來,方便讀取。
【步驟】
例如下面表格為“值班表.xlsx”
date | name | age |
20200617 | xiaowang | 16 |
20200618 | xiaozhang | 18 |
(1)把“值班表.xlsx”另存為無格式的“值班表.csv”。默認(rèn)是以逗號作為分隔符。
(2)把第一列的日期作為關(guān)鍵字,構(gòu)建空字典。例如,dic = {'20200617': {}, '20200618':{}}。
(3)關(guān)鍵字對應(yīng)的值為二級字典,二級關(guān)鍵字為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:] # (列名)標(biāo)題是二級索引 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)
到此這篇關(guān)于Python把excel文件數(shù)據(jù)轉(zhuǎn)化為字典格式存儲詳解的文章就介紹到這了,更多相關(guān)Python的excel轉(zhuǎn)化為字典內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對Python函數(shù)設(shè)計規(guī)范詳解
今天小編就為大家分享一篇對Python函數(shù)設(shè)計規(guī)范詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python實現(xiàn)校園網(wǎng)自動登錄的示例講解
下面小編就為大家分享一篇python實現(xiàn)校園網(wǎng)自動登錄的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python實現(xiàn)將MySQL數(shù)據(jù)庫查詢結(jié)果導(dǎo)出到Excel
在實際工作中,我們經(jīng)常需要將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到Excel表格中進(jìn)行進(jìn)一步的分析和處理,Python中的pymysql和xlsxwriter庫提供了很好的解決方案,下面我們就來看看具體操作方法吧2023-11-11Python 中的 dataclass使用場景與代碼示例詳解
在Python中,dataclass是一個裝飾器,用于簡化類的定義,自動生成初始化、比較等方法,適用于需要存儲數(shù)據(jù)的場景,通過示例展示了dataclass的基本用法,感興趣的朋友跟隨小編一起看看吧2024-09-09Python多進(jìn)程并發(fā)(multiprocessing)用法實例詳解
這篇文章主要介紹了Python多進(jìn)程并發(fā)(multiprocessing)用法,實例分析了multiprocessing模塊進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06