次のようにExcelに列の1つがあります。
[0,[20,40,60],1,0]
私はそれをxlrdで読んで、文字列として渡しました。
mycol=str(data[rownum][1]);
ただし、各項目をカンマで区切り、次のような辞書キー値に解析したいと思います
dict= {'Item1': '0', 'Item2': '[20,40,60]', 'Item3':'1', 'Item4': '0'}
次のようにExcelに列の1つがあります。
[0,[20,40,60],1,0]
私はそれをxlrdで読んで、文字列として渡しました。
mycol=str(data[rownum][1]);
ただし、各項目をカンマで区切り、次のような辞書キー値に解析したいと思います
dict= {'Item1': '0', 'Item2': '[20,40,60]', 'Item3':'1', 'Item4': '0'}
ステップ1:
>>> ast.literal_eval('[0,[20,40,60],1,0]')
[0, [20, 40, 60], 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]}