Python 如何将字符串转为字典

最近频繁用到将str转dict,自己使用过demjson和eval, 结合网上查询的资料,在此做个总结。
主要参考: Python 如何将字符串转为字典

方式一: eval()

自己经常用,主要是简单,但是会有安全问题。

方式二: json.loads()/demjson.encode()

缺点1: 转换成的数据type 是unicode, 需要再进行转换成type=dict
缺点2: json语法规定,数组或对象之中的字符串必须使用双引号,不能使用单引号,所以使用起来不灵活,不能保证所有的Str都能够正常转换。

方式二:literal_eval() 【推荐】

使用方式如下:

import ast
user = '{"name" : "john", "gender" : "male", "age": 28}'
user_dict = ast.literal_eval(user)
print(user_dict)
print(type(user_dict))

打印的结果:

{'gender': 'male', 'age': 28, 'name': 'john'}

优点:既不存在使用 json 进行转换的问题,也不存在使用 eval 进行转换的 安全性问题。 但是在项目中还未正式使用过。

你可能感兴趣的:(Python 如何将字符串转为字典)