禁止使用eval
主要是应为,因为eval是不安全的,代码中写eval是要被口工资的,哈哈
1. json
import json
s = '{"title": "格瓦斯", "play_address": 12}'
print(type(s))
d = json.loads(s)
print(d)
print(type(d))
<class 'str'>
{'title': '格瓦斯', 'play_address': 12}
<class 'dict'>
如果字符串中 是 "{'title': ''.......}""
用json则会引发异常
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
此时可以使用ast.literal_eval
2. ast.literal_eval
import ast
s = "{'title' : '格瓦斯', 'play_address' : 13}"
print(type(s))
d = ast.literal_eval(s)
print(d)
print(type(d))
<class 'str'>
{'title': '格瓦斯', 'play_address': 13}
<class 'dict'>