在我的Python程序中,我有一串格式:
'name': 'Salman','age': '25', 'access': 'R', 'id': '00125'
我想将其转换为dict类型,以便我可以像dict["name"]
一样查询以打印"Salman"
。
答案 0 :(得分:9)
使用ast.literal_eval
:
import ast
mystr = "'name': 'Salman','age': '25', 'access': 'R', 'id': '00125'"
d = ast.literal_eval('{'+mystr+'}')
# {'access': 'R', 'age': '25', 'id': '00125', 'name': 'Salman'}
d['access'] # 'R'
答案 1 :(得分:2)
我认为这是一个使用理解的简洁解决方案
s = "'name': 'Salman','age': '25', 'access': 'R', 'id': '00125'"
d = dict([i.strip().replace("'", "") for i in kv.split(':')] for kv in s.split(","))
# d == {'access': 'R', 'age': '25', 'id': '00125', 'name': 'Salman'}
答案 2 :(得分:0)
首先按“:”和“,”拆分字符串,然后将其存储在列表中。 然后从0迭代到len(列表)-2:mydict [list [i]] = list [i + 1]