1
0

More than 1 year has passed since last update.

Python3 csv.DictReaderをforするときは一度辞書で受ける

Last updated at Posted at 2022-02-13

csv.DictReaderforするときは一度辞書で受ける

csv.DictReaderをそのままforすると見出しだけ列挙されます。これは一度辞書として受けることで解決できます。原因はcsv.DictReaderiter結果がdictであること、dictforがキーを返すことです。csv.DictReaderではキーが見出しに対応します。アンパックしたくなりますが、dictの場合は遠回りが近道です。

dictのキーだけ列挙されるコード
dd = ({"A":1, "B":2, "C":3},
      {"A":4, "B":5, "C":6})
for a, b, c in dd:
    print((a, b, c))
#('A', 'B', 'C')
#('A', 'B', 'C')
dictを取得できるコード
dd = ({"A":1, "B":2, "C":3},
      {"A":4, "B":5, "C":6})
for d in dd:
    print(d)
#{'A': 1, 'B': 2, 'C': 3}
#{'A': 4, 'B': 5, 'C': 6}
csv.DictReaderの見出しが列挙されるコード
import csv

csv_raw = "A, B, C\n1,2,3\n4,5,6".split("\n")
for a, b, c in csv.DictReader(csv_raw):
    print((a, b, c))
#('A', ' B', ' C')
#('A', ' B', ' C')
csv.DictReaderの行(dict)を取得できるコード
import csv

csv_raw = "A, B, C\n1,2,3\n4,5,6".split("\n")
for d in csv.DictReader(csv_raw):
    print(d)
#{'A': '1', ' B': '2', ' C': '3'}
#{'A': '4', ' B': '5', ' C': '6'}

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0