从excel读取一列并解析为字典键值python

时间:2013-02-05 05:18:03

标签: python dictionary delimiter

我在excel中有一个列如下:

[0,[20,40,60],1,0]

我通过xlrd读取它并将其作为字符串传递。

mycol=str(data[rownum][1]);

但是,我想用逗号分隔每个项目并解析为字典键值,例如

dict= {'Item1': '0', 'Item2': '[20,40,60]', 'Item3':'1', 'Item4': '0'}

2 个答案:

答案 0 :(得分:2)

第1步:

>>> ast.literal_eval('[0,[20,40,60],1,0]')
[0, [20, 40, 60], 1, 0]

答案 1 :(得分:0)

扩展Ignacio Vazquez-Abrams给出的答案

In [61]: import ast

In [62]: l  = ast.literal_eval('[0,[20,40,60],1,0]')

In [63]: l
Out[63]: [0, [20, 40, 60], 1, 0]

In [64]: d = dict([("Item%s"%x, y) for x, y in enumerate(l, 1)])

In [65]: d
Out[65]: {'Item1': 0, 'Item2': [20, 40, 60], 'Item3': 1, 'Item4': 0}

如果您在键中使用了正确的值而不是Item *

In [77]: l2 = ['Apple ', 'Orange', 'Banana', 'Grape']

In [78]: d = dict(zip(l2, l))

In [79]: d
Out[79]: {'Apple ': 0, 'Banana': 1, 'Grape': 0, 'Orange': [20, 40, 60]}