如何從csv製作OrderedDict?有沒有功能?csv to OrderedDict
CSV:
1 one
2 two
OrderedDict:
OrderedDict((('1', 'one'), ('2', 'two')))
如何從csv製作OrderedDict?有沒有功能?csv to OrderedDict
CSV:
1 one
2 two
OrderedDict:
OrderedDict((('1', 'one'), ('2', 'two')))
如果CSV有兩列,你可以這樣做:
import csv
import collections
with open('foo.csv','rb') as f:
r = csv.reader(f)
od = collections.OrderedDict(r)
如果行在CSV文件中被格式化爲key, value1, value2, value3
你可以這樣做:
with open('foo.csv','rb') as f:
r = csv.reader(f)
od = collections.OrderedDict((row[0], row[1:]) for row in r)
有一個CSV模塊,包括一個讀卡器。在一般情況下,你可以把一個元組列表到字典中,像這樣:在你的問題中所述
d = OrderedDict((k, v) for k, v in listOfTuples)
我有同樣的問題,簡單的方法是繼承和調整一個CSV功能。這裏是我的代碼工作位:http://code.activestate.com/recipes/577996-ordered-csv-read-write-with-colum-based-lookup/?in=user-4177968
雖然解決方案被接受,我的另一種解決辦法適合這裏的關鍵可以位於任何列::
>>> import pyexcel as pe
>>> csv = pe.Sheet("your.csv", name_rows_by_column=0)
>>> your_dict = csv.to_dict() # Voila, OrderredDict in return!
其中name_rows_by_column可以是任何索引的情況的可用列。
閱讀標準庫中的[csv模塊](http://docs.python.org/library/csv.html),並按照其中的示例進行操作。 – 2011-05-26 18:15:49