eval函数
eval函数是一个很智能的函数,可以将字符串对象中体现出来的数据类型转换成那个类型的对象,比如:
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))
b = eval(a)
print(type(b)) # list
print(b) #[[1,2], [3,4], [5,6], [7,8], [9,0]]
a是一个字符串,但是字符串里是一个list,eval之后就变成了一个list,同理,dict、json、tuple等结构可以用此类方法。
上述例子表示,eval函数就是用来执行一个字符串里的内容,并返回执行结果,举几个例子:
x = 7
eval( '3 * x' ) #21
eval('2 + 2') #4
s = "{'name':'like'}"
s = eval(s)
print(type(s)) #dict
这里有一个常用的应用,比如一个json字符串,key和value是被单引号包裹的,此时用json.loads(strs)会报错,就可以直接用 eval(strs) 直接将单引号的json字符串转化为字典去处理。
当然,要小心在实际使用中的注入漏洞。