从csv单元格中的字符串到dict

时间:2013-08-07 01:36:08

标签: python

我有一个名为availableexits的列的CSV。因此,其数据为:'N = 1,E = 4,S = 7'

我想把它放在一个字典中,所以看起来像:

d = {'N':1, 'E':4,  'S':7}

(如果你有答案就停在那里,下面只是说明我现在是怎么做的)

目前我将列数据读作字符串:

'N=1,E=4,S=7'

然后我将它拆分为逗号g = d.split(“,”)

g = ['S=1', 'W=3', 'N=4']

然后我将=

上的每一个分开
h = []
for x in g :
    h.append(x.split("="))

#h is now [['N', '1'], ['E', '3'], ['S', '4']]

然后施放为字典

e = dict(h) #looks very German

#e is now {'S': '1', 'W': '3', 'N': '4'}

我在使用它时只是将值转换为int。

我有一种感觉,我这样做是一个可怕的人。什么是更好的方式。

1 个答案:

答案 0 :(得分:2)

你可以使用理解:

s='N=1,E=4,S=7'
dict(t.split('=') for t in s.split(','))

您可以更进一步制作值ints

dict((a,int(b)) for a,b in (t.split('=') for t in s.split(',')))