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