1. ホーム
  2. python

[解決済み】csvファイルから辞書を作成する?

2022-04-12 04:11:56

質問

csvファイルから辞書を作成しようとしています。csvファイルの最初の列には一意のキーが含まれ、2番目の列には値が含まれます。csvファイルの各行は、辞書内の一意のキーと値のペアを表します。を使おうとしました。 csv.DictReader csv.DictWriter クラスがありますが、各行に新しい辞書を生成する方法しか分かりませんでした。私は1つの辞書が欲しいのです。以下は、私が使おうとしているコードです。

import csv

with open('coors.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('coors_new.csv', mode='w') as outfile:
    writer = csv.writer(outfile)
    for rows in reader:
        k = rows[0]
        v = rows[1]
        mydict = {k:v for k, v in rows}
    print(mydict)

上記のコードを実行すると ValueError: too many values to unpack (expected 2) . csvファイルから1つの辞書を作成するにはどうすればよいのでしょうか?ありがとうございます。

どのように解決するのですか?

お探しの構文は以下の通りだと思います。

import csv

with open('coors.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('coors_new.csv', mode='w') as outfile:
        writer = csv.writer(outfile)
        mydict = {rows[0]:rows[1] for rows in reader}

あるいは、python <= 2.7.1 の場合は、次のようにします。

mydict = dict((rows[0],rows[1]) for rows in reader)