3列のcsvファイルがあり、辞書を作成しようとしています。最初にファイルを読みました:
fin = open('example.csv', 'r')
これらの列を使用して辞書を作成するにはどうすればよいですか?
OPコメントに応じて編集
あなたが求めているのは回すことだと思います
a,123,456
b,333,444
c,888,3434
の中へ
{'a': ('123', '456'), 'b': ('333', '444'), 'c': ('888', '3434')}
その場合、1 つの解決策は、 csv.reader を使用してファイルを解析し、行を反復して、最終的な辞書に入力することです。
with open('example.txt', 'rb') as src_file:
csv_file = csv.reader(src_file)
data = {}
for row in csv_file:
data[row[0]] = (row[1], row[2])
print(data)
http://docs.python.org/2/library/csv.htmlcsv
のモジュール ドキュメントを参照してください。
値がどのように見えるべきかを言わなかったので、次のようになります。
d={}
with open('example.csv', 'r') as file:
for line in file:
lst = line.strip().split(',')
d[lst[0]] = lst[1:]
これは次のようなものを出力します:
{'key1': ['v1', 'v2'], 'key2': ['v1', 'v2']}
csv モジュールで dict_writer を使用できます。
import csv
fieldnames = ['Column1', 'Column2', 'Column3']
dict_writer = csv.DictWriter(file('your.csv', 'wb'), fieldnames=fieldnames)
dict_writer.writerow(fieldnames)
dict_writer.writerows(rows)
numpy loadtxt を使用して辞書を作成することもできます。
from numpy import loadtxt
a,b,c = loadtxt('filename.csv', sep=',', unpack=true)
dictionary = dict(zip(a,(b,c)))