是否可以将csv文件中的数据读入字典,以便列的第一行是键,同一列的其余行构成列表的值?
例如,我有一个csv文件
strings, numbers, colors
string1, 1, blue
string2, 2, red
string3, 3, green
string4, 4, yellow
使用
with open(file,'rU') as f:
reader = csv.DictReader(f)
for row in reader:
print row
我得到
{'color': 'blue', 'string': 'string1', 'number': '1'}
{'color': 'red', 'string': 'string2', 'number': '2'}
{'color': 'green', 'string': 'string3', 'number': '3'}
{'color': 'yellow', 'string': 'string4', 'number': '4'}
或使用
with open(file,'rU') as f:
reader = csv.reader(f)
mydict = {rows[0]:rows[1:] for rows in reader}
print(mydict)
我得到下列词典
{'string3': ['3', 'green'], 'string4': ['4', 'yellow'], 'string2': ['2', 'red'], 'string': ['number', 'color'], 'string1': ['1', 'blue']}
但是,我想
{'strings': ['string1', 'string2', 'string3', 'string4'], 'numbers': [1, 2, 3,4], 'colors': ['red', 'blue', 'green', 'yellow']}
您需要分析第一行,创建列,然后前进到其余行。
例如:
输出:
(一些奇怪的空格,在你的输入“文件”中)。删除逗号前后的空格,如果它们在实际输入中,则使用
value.strip()
)这就是为什么我们有
defaultdict
是的,这是可能的:这样试试:
假设filename.csv包含一些数据,如
然后D将导致
相关问题 更多 >
编程相关推荐