PythonのcsvモジュールのDictReaderを使ってみます。
DictReaderのドキュメントは こちら です。
DictReaderは、CSVの行の情報を辞書型にするオブジェクトです。
DictReaderの基本的な使い方
サンプルで使用するCSVファイルを用意する
サンプルコードで使用する入力CSVファイルは、以下の記事のDictWriterで出力したtest_b.csvを使用します。

DictReader使用方法のサンプルコード
サンプルコードです。
import os
import csv
import json
filename = 'test_b.csv'
file_path = os.path.join(os.getcwd(), filename)
csv_data = {}
f = open(file_path, 'r')
reader = csv.DictReader(f)
headers = reader.fieldnames # CSVのヘッダ情報を取得する。
for row in reader:
inner_data = {}
for header in headers:
inner_data.update({header: row[header]})
num = reader.line_num
csv_data.update({num: inner_data})
f.close()
print(json.dumps(csv_data, indent=4))
サンプルコードの補足説明
CSVのヘッダ情報はfieldnamesで取得できます。
headers = reader.fieldnames >> ['Name', 'Country', 'Job', 'Age']
readerをFor文で回すと列情報が取得できるので、辞書型に落とし込みます。
for row in reader:
inner_data = {}
for header in headers:
inner_data.update({header: row[header]})
row情報はこのようになっています。
OrderedDict([('Name', 'Ken'), ('Country', 'US'), ('Job', 'Artist'), ('Age', '56')])
最後に、辞書型の第1階層のKEYは、CSVファイルの行番号とします。
num = reader.line_num
csv_data.update({num: inner_data})
DictReaderで読み込んだ結果
辞書型を表示してみます。
DictReaderを使ってCSVファイルを読み込めています。
{
"2": {
"Name": "Ken",
"Country": "US",
"Job": "Artist",
"Age": "56"
},
"3": {
"Name": "Alan",
"Country": "Japan",
"Job": "Carpenter",
"Age": "27"
},
"4": {
"Name": "Steven",
"Country": "China",
"Job": "Artist",
"Age": "40"
}
}

