Python: TSVファイルのデータを辞書(dict)型に格納する

PythonでTSVファイル(TAB区切り)のデータをディクショナリに格納するコードを示します。

TSVファイルのカラム名は(ID, NAME, AGE)とします。

サンプルコード

import csv

def load_tsv_to_dict(file_path):
	data_dict = {}
	with open(file_path, 'r', encoding='utf-8') as file:
		tsv_reader = csv.DictReader(file, delimiter='\t')
		for row in tsv_reader:
			data_dict[row['ID']] = {'NAME': row['NAME'], 'AGE': row['AGE']}
	return data_dict

# TSVファイルのパス
tsv_file_path = 'sample_data.tsv'

# 関数を呼び出してデータを読み込む
result = load_tsv_to_dict(tsv_file_path)

# 結果を表示
print(result)

サンプルデータ

以下のような内容の sample_data.tsv ファイルがあると仮定します:

ID	NAME	AGE
1	John	30
2	Alice	25
3	Bob	35
4	Emma	28
5	David	40

注意: TSVファイルでは、各列がタブ文字(\t)で区切られています。

サンプルコードの実行結果

上記のコードを実行すると、以下のような結果が得られます:

{
    '1': {'NAME': 'John', 'AGE': '30'},
    '2': {'NAME': 'Alice', 'AGE': '25'},
    '3': {'NAME': 'Bob', 'AGE': '35'},
    '4': {'NAME': 'Emma', 'AGE': '28'},
    '5': {'NAME': 'David', 'AGE': '40'}
}

このコードでは、TSVファイルの各行を読み込み、'ID'列をキーとし、'NAME'と'AGE'の情報を内部ディクショナリとして値に持つ形でデータを格納しています。

注意点:

  1. csv.DictReaderのdelimiterパラメータを'\t'に設定することで、TAB区切りのファイルを正しく読み込めます。
  2. ファイルのエンコーディングが異なる場合は、open関数のencodingパラメータを適切に設定してください。
  3. エラー処理を追加することで、ファイルが存在しない場合やフォーマットが不正な場合にも適切に対応できます。
  4. AGEの値は文字列として格納されています。必要に応じて整数に変換することもできます。
Python