看板 Python 關於我們 聯絡資訊
小弟是正在學python的大一菜雞 今天寫到一份題目是要將一份csv的檔案轉成字典 但是我怎麼寫都找不到怎麼解決問題 是要將csv檔的第一行為key 第二行為value https://i.imgur.com/tHuuTnd.jpg 在迴圈裡面是無法印出特定的value 在迴圈外只印得出最後一個value https://i.imgur.com/VjoKKiC.jpg 想請問大家是哪裡出問題呢? ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.236.59 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1554308519.A.34D.html
ckc1ark: dic要在for迴圈外宣告04/04 00:29
ckc1ark: 在for裡每次都產生新的dict04/04 00:29
可是row是在for那裡宣告的耶?
TitanEric: 不太理解特定的value是什麼04/04 00:30
TitanEric: dic會找最近的變數 也就是在loop中殘留的dic 神奇的pyt04/04 00:33
TitanEric: hon變數存取範圍04/04 00:33
印不出來例如dic['1s']等等 ※ 編輯: ren0518 (180.217.236.59), 04/04/2019 00:53:49
CCWck: 你的dic只有一行啊,不是整組的字典 04/04 01:08
CCWck: 用dic.items()檢查一下 04/04 01:12
CCWck: 不過你的result看起來就是dictionary了。何不直接print(res 04/04 01:17
CCWck: ult['1s'])? 04/04 01:17
lemon651: row在for裡宣告跟dict在哪宣告什麼關係?你dict就是負責 04/04 03:49
lemon651: 丟東西進去的啊... 04/04 03:49
yp1369: 何不用pandas呢? 04/04 11:46
lajji: 你for迴圈裡面每次都用新的dic覆蓋當然只印得出最後一個 04/04 12:53
感謝lajji大提醒
art1: 看起來像是搞錯 csv.DictReader 的用法 04/04 14:24
art1: DictReader若已經回傳一個串列,串列元素都是字典,何必又 04/04 14:27
art1: 另外存到字典裏面? 04/04 14:27
art1: 看別人的範例,DictReader是為每一列建立同樣鍵名的字典 04/04 14:29
art1: 但你要的是使用每一列的第一行元素為鍵名,第二行為對應的值 04/04 14:30
art1: 我搞錯了,lajji說的才是正確的,你不是附加上去而是覆蓋 04/04 14:32
art1: 你應該在迴圈外宣告一個空的dic,然後用dic[row['key'] = 04/04 14:35
art1: 迴圈內用 dic[row['key']] = row['value']的方式新增元素 04/04 14:35
感謝art大,我沒想到這一點,做出來了感謝,也謝謝回覆的各位 ※ 編輯: ren0518 (180.217.201.162), 04/04/2019 15:25:59 ※ 編輯: ren0518 (180.217.201.162), 04/04/2019 15:26:59