Python如何把字典寫入到CSV文件的方法示例
在實際數(shù)據(jù)分析過程中,我們分析用Python來處理數(shù)據(jù)(海量的數(shù)據(jù)),我們都是把這個數(shù)據(jù)轉(zhuǎn)換為Python的對象的,比如最為常見的字典。
比如現(xiàn)在有幾十萬份數(shù)據(jù)(當然一般這么大的數(shù)據(jù),會用到數(shù)據(jù)庫的概念,不會去在CPU內(nèi)存里面運行),我們不可能在Excel里面用函數(shù)進行計算一些值吧,這樣是不現(xiàn)實的。Excel只適合處理比較少的數(shù)據(jù),具有方便快速的優(yōu)勢那么我們假設(shè)是這么多數(shù)據(jù),現(xiàn)在我要對這個數(shù)據(jù)進行解析,轉(zhuǎn)換,最后數(shù)據(jù)分析,處理,然后寫入數(shù)據(jù)到CSV文件,這樣才達到要求,那么如何把數(shù)據(jù)字典寫入到CSV文件了,我們就來看看。
就把這個項目和我們之前寫過的一個成績計算系統(tǒng)相關(guān)聯(lián),記得當時我們是把他寫入為txt文件,里面是以字典的方式呈現(xiàn)的,那么我們現(xiàn)在來改進一下,就是為了把這份分析好的數(shù)據(jù),呈現(xiàn)給其他人,比如現(xiàn)在要歸檔把這份數(shù)據(jù)存儲下來。
首先我們建立了一個函數(shù),專門寫入CSV文件的這樣一個函數(shù)
def csv_writer():
這里我們首先把我們這份數(shù)據(jù)的鍵(表頭)給取出來,這里我們用到了一個遍歷算法,那么有的小伙伴就疑問了,為什么我不手動加入,寫入啊,也就幾行我copy就好了,但是我們考慮一下如果鍵有幾十個的話,我們直接copy是不是顯得有點不自動化了,Python就是可以解決辦公難題,別用一個小時的時間,你只需要1分鐘就好。
a=[] dict=student_infos[0] for headers in sorted(dict.keys()):#把字典的鍵取出來 a.append(headers) header=a#把列名給提取出來,用列表形式呈現(xiàn)
這里的header是一個列表
這里我打開了這個文件,準備寫入,里面的參數(shù)我這里一一解釋一下。
** a表示以“追加”的形式寫入,如果是“w”的話,表示在寫入之前會清空原文件中的數(shù)據(jù)newline是數(shù)據(jù)之間不加空行encoding=’utf-8’表示編碼格式為utf-8,如果不希望在excel中打開csv文件出現(xiàn)中文亂碼的話,將其去掉不寫也行。為了不讓pycharm里面的CSV文件亂碼,我們這里用的參數(shù)編碼為utf-8而excel文件編碼格式是gbk,兩者不兼容,建議加上encoding=’utf-8’參數(shù)。如果不想excel中的csv文件亂碼的話,建議將csv文件以記事本的方式打開,另存為ANSI格式即可。**
with open(’成績更新.csv’, ’a’, newline=’’, encoding=’utf-8’) as f: writer = csv.DictWriter(f, fieldnames=header) # 提前預覽列名,當下面代碼寫入數(shù)據(jù)時,會將其一一對應。 writer.writeheader() # 寫入列名 writer.writerows(student_infos) # 寫入數(shù)據(jù) print('數(shù)據(jù)已經(jīng)寫入成功!!!')
這里的字典數(shù)據(jù)使我們之前內(nèi)存空間里面已經(jīng)解析處理好的數(shù)據(jù),我這里最后一行直接用.writerows(字典)寫入,至于表頭,writeheader()寫入就好
其實寫入就是這么簡單,也解決我們點點點的麻煩!
到此這篇關(guān)于Python如何把字典寫入到CSV文件的方法示例的文章就介紹到這了,更多相關(guān)Python字典寫入到CSV 內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. XML入門的常見問題(一)2. html小技巧之td,div標簽里內(nèi)容不換行3. PHP字符串前后字符或空格刪除方法介紹4. AspNetCore&MassTransit Courier實現(xiàn)分布式事務的詳細過程5. jsp cookie+session實現(xiàn)簡易自動登錄6. css進階學習 選擇符7. 將properties文件的配置設(shè)置為整個Web應用的全局變量實現(xiàn)方法8. 解析原生JS getComputedStyle9. Echarts通過dataset數(shù)據(jù)集實現(xiàn)創(chuàng)建單軸散點圖10. nestjs實現(xiàn)圖形校驗和單點登錄的示例代碼
