将文本文件转换为键字符串和值整数的字典

时间:2018-12-26 05:02:21

标签: python arrays file dictionary

我有一个数字这样的文本文件

text.file '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9 我想将其转换为这样的数组:

myary= {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} 但我希望字符串,并且整数

我认为我能够将所有这些作为字符串获得,但这不是我想要的 我希望它分开

2 个答案:

答案 0 :(得分:7)

使用ast.literal_eval

import ast
txt = "'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9"
print (ast.literal_eval('{' + txt + '}'))
#{'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

答案 1 :(得分:0)

如果您不想使用literal_eval

str="'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9"
print({x[0].replace("'", ""):int(x[1]) for x in [y.split(': ') for y in [z for z in str.split(',')]] })
#{'2': 2, '7': 7, '8': 8, '4': 4, '1': 1, '9': 9, '3': 3, '6': 6, '5': 5}