关于Python后端代码转换类型问题

之前转换代码类型使用了非常复杂的各种第三方库,突然发现eval函数完全可以秒杀这些第三方库或十分复杂的方法,多的不说直接看实例

首先我们在用eval函数转换类型之前要先了解eval函数是什么: 

eval函数的功能:它可以将字符串当做一个完整的表达式进行计算或返回其结果

例:

a='1+2+3'

#这里的a对象是一个完整的字符串格式代码,如果想将它按正常的方式进行转换的话可以看出会非常麻烦,因为他还有个+号的字符串,不完全是数字

但如果使用eval函数就可以轻轻松松解决这个问题,eval函数会将a这个变量去掉字符串直接进行结果集的运算并返回其运算的结果

例:

a='1+2+3'

print(eval(a)) #这例的值会是6而且还是一个int整数类型的值!是不是很神奇

言简意赅的讲,eval函数可以将所有字符串转换为非字符串并将其结果或表达式直接引用

例:转换列表

a = "[a,1,2,a,temp]"

b = eval(a)

print(b)

如果要转换列表这里需注意:我在a列表中添加了一个temp,它提示我未定义,这是为什么呢?

解:

这里的b对象是eval转换过的a对象,所以b对象相当于是一个无字符串的列表temp自然会当做变量存放在列表中,所以这里如果我们要转换列表的话需要在里面进行字符串的嵌套

a = "[a,1,2,a,'temp']"

b = eval(a)

print(b)  #这样就不会报错啦

按照上述方法字典与元组都是一样的转换方式

字典字符串转换方式

b='{"name":"张三","age":18}'

# 用eval函数直接转换

d=eval(b)

print(d)

#字符串转换成元组

a = "(1,2,3,4,5,)"

b = eval(a)

print(b)

不过eval函数在数据库操作中要谨慎使用,它不安全,尤其web开发中,它会展露给用户我们写的代码,这样大佬们可能会通过某种技术手段渗透进我们开发的应用,这样就得不偿失了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值