通过literal_eval
1 2 3 4 5 6 7 8
| import ast user= '{"name" : "Mary", "gender" : "male", "age": 20}' user_dic = ast.literal_eval(user) print(type(user_dic)) print(user_dic)
|
优点:即不存在json进行转换的单双引号问题,也不存在使用eval进行转换的安全性问题
通过json来转换
1 2 3 4 5 6 7 8
| import json user= '{"name" : "Mary", "gender" : "male", "age": 20}' user_dic = json.loads(user) print(type(user_dic)) print(user_dic)
|
优点:安全性尚可
缺点:json语法规定数组或对象之中的字符串必须使用双引号,不能使用单引号
通过eval转换
1 2 3 4
| user= '{"name" : "Mary", "gender" : "male", "age": 20}' user_dic = eval(user) print(type(user_dic)) print(user_dic)
|
优点:不存在json转换方式中的单双引号问题
缺点:安全性问题