[問題] csv轉為dictionary的問題

看板Python作者 (不好說)時間5年前 (2019/04/04 00:21), 5年前編輯推噓9(9012)
留言21則, 7人參與, 5年前最新討論串1/1
小弟是正在學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

04/04 00:29, 5年前 , 1F
dic要在for迴圈外宣告
04/04 00:29, 1F

04/04 00:29, 5年前 , 2F
在for裡每次都產生新的dict
04/04 00:29, 2F
可是row是在for那裡宣告的耶?

04/04 00:30, 5年前 , 3F
不太理解特定的value是什麼
04/04 00:30, 3F

04/04 00:33, 5年前 , 4F
dic會找最近的變數 也就是在loop中殘留的dic 神奇的pyt
04/04 00:33, 4F

04/04 00:33, 5年前 , 5F
hon變數存取範圍
04/04 00:33, 5F
印不出來例如dic['1s']等等 ※ 編輯: ren0518 (180.217.236.59), 04/04/2019 00:53:49

04/04 01:08, 5年前 , 6F
你的dic只有一行啊,不是整組的字典
04/04 01:08, 6F

04/04 01:12, 5年前 , 7F
用dic.items()檢查一下
04/04 01:12, 7F

04/04 01:17, 5年前 , 8F
不過你的result看起來就是dictionary了。何不直接print(res
04/04 01:17, 8F

04/04 01:17, 5年前 , 9F
ult['1s'])?
04/04 01:17, 9F

04/04 03:49, 5年前 , 10F
row在for裡宣告跟dict在哪宣告什麼關係?你dict就是負責
04/04 03:49, 10F

04/04 03:49, 5年前 , 11F
丟東西進去的啊...
04/04 03:49, 11F

04/04 11:46, 5年前 , 12F
何不用pandas呢?
04/04 11:46, 12F

04/04 12:53, 5年前 , 13F
你for迴圈裡面每次都用新的dic覆蓋當然只印得出最後一個
04/04 12:53, 13F
感謝lajji大提醒

04/04 14:24, 5年前 , 14F
看起來像是搞錯 csv.DictReader 的用法
04/04 14:24, 14F

04/04 14:27, 5年前 , 15F
DictReader若已經回傳一個串列,串列元素都是字典,何必又
04/04 14:27, 15F

04/04 14:27, 5年前 , 16F
另外存到字典裏面?
04/04 14:27, 16F

04/04 14:29, 5年前 , 17F
看別人的範例,DictReader是為每一列建立同樣鍵名的字典
04/04 14:29, 17F

04/04 14:30, 5年前 , 18F
但你要的是使用每一列的第一行元素為鍵名,第二行為對應的值
04/04 14:30, 18F

04/04 14:32, 5年前 , 19F
我搞錯了,lajji說的才是正確的,你不是附加上去而是覆蓋
04/04 14:32, 19F

04/04 14:35, 5年前 , 20F
你應該在迴圈外宣告一個空的dic,然後用dic[row['key'] =
04/04 14:35, 20F

04/04 14:35, 5年前 , 21F
迴圈內用 dic[row['key']] = row['value']的方式新增元素
04/04 14:35, 21F
感謝art大,我沒想到這一點,做出來了感謝,也謝謝回覆的各位 ※ 編輯: ren0518 (180.217.201.162), 04/04/2019 15:25:59 ※ 編輯: ren0518 (180.217.201.162), 04/04/2019 15:26:59
文章代碼(AID): #1SfDsdDD (Python)