在Python 中 字符串 转换为 字典
在Python 中 把字符串转换为字典 例如,将字符串 user_info = ‘{“name” : “john”, “gender” : “male”, “age”: 28}’ 转换为字典 user_dict = {“name” : “john”, “gender” : “male”, “age”: 28}
有以下几种方法 1.通过 json 来转换
import json
user_info = {"name" : "john", "gender" : "male", "age": 28}
user_dict = json.loads(user_info)
print(type(user_dict))
print(user_dict)
#得到的结果是
<class dict>
{
name: john, gender: male, age: 28}
但是使用 json 进行转换存在一个潜在的问题。 json 语法规定 数组或对象之中的字符串必须使用双引号,不能使用单引号,如果出现下列情况就报错
import json
user_info = "{name : john, gender: male, age: 28}"
user_dict = json.loads(user_info)
print(type(user_dict))
print(user_dict)
2.通过 eval() 函数 来转换 (慎用)
user_info = "{name : john, gender: male, age: 28}"
user_dict = eval(user_info)
print(type(user_dict))
print(user_dict)
因为 eval() 会把字符串表达式当作代码来执行,所以能生成字典。但是如果是从用户输入的内容中获取字符串表达式,那就很容易出现安全问题。
3.通过 ast 模块下的 literal_eval() 函数来转换
import ast
user_info = "{name : john, gender: male, age: 28}"
user_dict = ast.literal_eval(user_info)
print(type(user_dict))
print(user_dict)
这种方式就会安全很多。所以要将字符串转换为字典,推荐使用这种方法。
