如何从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