0

3列のcsvファイルがあり、辞書を作成しようとしています。最初にファイルを読みました:

fin = open('example.csv', 'r')

これらの列を使用して辞書を作成するにはどうすればよいですか?

4

4 に答える 4

2

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のモジュール ドキュメントを参照してください。

于 2012-11-24T11:05:27.130 に答える
1

値がどのように見えるべきかを言わなかったので、次のようになります。

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']}
于 2012-11-24T10:21:13.003 に答える
1

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)
于 2012-11-24T10:01:38.523 に答える
0

numpy loadtxt を使用して辞書を作成することもできます。

  from numpy import loadtxt

  a,b,c = loadtxt('filename.csv', sep=',', unpack=true)
  dictionary = dict(zip(a,(b,c)))
于 2012-11-24T12:07:38.870 に答える