Python之使用eval()函数将字符串的数据结构提取出来

data = input(‘请输入你要修改的对象:‘).strip()
‘‘‘
输入下面的字典列表
[{‘backend‘:‘www.oldboy1.org‘,‘record‘:{‘server‘:‘2.2.2.4‘,‘weight‘:20,‘maxconn‘:3000}},{‘backend‘:‘www.oldboy1.org‘,‘record‘:{‘server‘:‘2.2.2.5‘,‘weight‘:30,‘maxconn‘:4000}}]
‘‘‘
print(data)
data = eval(data)
# 如果不使用该项命令,会报错:string indices must be integers
# 作用:把用户输入的字符串里的数据结构提取出来
print(data)
print(data[0][‘backend‘])
old_server_record = ‘%sserver %s %s weight %s maxconn %s\n‘ %(‘ ‘*8,data[0][‘record‘][‘server‘],
                                                                data[0][‘record‘][‘server‘],
                                                                data[0][‘record‘][‘weight‘],
                                                                data[0][‘record‘][‘maxconn‘])
print(old_server_record)
new_server_record = ‘%sserver %s %s weight %s maxconn %s\n‘ % (‘ ‘ * 8, data[1][‘record‘][‘server‘],
                                                                 data[1][‘record‘][‘server‘],
                                                                 data[1][‘record‘][‘weight‘],
                                                                 data[1][‘record‘][‘maxconn‘])
print(new_server_record)

原文地址:https://www.cnblogs.com/lzn-2018/p/10821108.html

时间: 2024-11-17 21:35:44

Python之使用eval()函数将字符串的数据结构提取出来的相关文章

python笔记-调用eval函数出现invalid syntax错误

本来是想打算使用eval函数对变量进行赋值的,没想到出现了invalid syntax错误.源代码如下 In [2]: eval('a = 1') File "<string>", line 1 a = 1 ^ SyntaxError: invalid syntax 百度没百度到结果,最后在stackoverflow上找到了好的答案,这里是原文链接. 作者的意思是,eval函数只负责对表达式进行处理,并没有赋值的功能,也就是说,eval函数只负责对你的输入进行输出,True

python自动化之eval()函数

eval()函数说明:将字符串str当成有效的表达式来求值并返回计算结果,即将str转化为list,tuple,dict.例子: a = '[1,2,3,4]' b = '([1,2],[4],"c")' c = '{2,3,4,5}' print(eval(a),type(eval(a))) print(eval(b),type(eval(b))) print(eval(c),type(eval(c))) 输出: [1, 2, 3, 4] <class 'list'> (

Python学习札记-eval函数

eval()函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果 语法上:调用的是:eval(expression,globals=None, locals=None)返回的是计算结果 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Python表达式或函数compile()返回的代码对象 global

Python 列表生成式,函数,字符串,文件操作,生成器

知识点 1 ==与is区别:Python中对象包含的三个基本要素,分别是:id(身份标识).type(数据类型)和value(值). ==只比较值,而is比较身份标识也就是内存地址,而且在is比较中关于数据类型也就是只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False. 2 浅拷贝和深拷贝:需要使用copy模块 浅拷贝:copy()方法实现 1.对于不可变类型 Number String Tuple,浅复制仅仅是地

Python基础-09-内置函数

内置函数 abs()取绝对值,all()可迭代对象所有值都为真则返回Ture,或可迭代对象只有一个空值则返回Ture any()有一个为真就返回True bin()十进制转化为二进制 bool()取布尔值 dir()打印某对象里面的所有方法 divmov(10,3)结果为(3,1)10除以3商为3余数为1 dic_str()字典转化为字符串 eval()将字符串中数据结构提取出来,或者将字符串中的表达式进行计算 hash()可哈希的数据类型即为不可变数据类型,不可哈希数据类型即为可变类型,如修改

PHP eval() 函数

eval() 函数把字符串按照 PHP 代码来计算. 该字符串必须是合法的 PHP 代码,且必须以分号结尾. 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存在解析错误,则 eval() 函数返回 false <?php $string = "beautiful"; $time = "winter"; $str = 'This is a $string $time morning!'; echo $str. "<b

PHP的eval()函数

eval() 函数把字符串按照 PHP 代码来计算. 用法:eval(phpcode); 案例1: $a = 'name'; $b = 'my'; $d = '$b $a is helen'; echo $d."<br/>"; eval("\$d = \"$d\";"); echo $d."<br/>"; 输出结果: $b $a is helen my name is helen 案例2: 应用场景:判

php中eval函数用法介绍

黑客用得最多的一句了,可以解析php.很多木马文件都是这样做的, 上面是一个php大马文件, eval() 函数把字符串按照 PHP 代码来计算. 该字符串必须是合法的 PHP 代码,且必须以分号结尾. 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存在解析错误,则 eval() 函数返回 false. 由于安全原因,不建议大家在开发中使用. 下面一句最简单的代码,风险超级高,我们有时会看到自己的网站有这么一句: eval($_POST[cmd]);#这个就是php

python encode和decode函数说明【转载】

python encode和decode函数说明 字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在python中,使用unicode类型作为编码的基础类型.即 decode              encode str ---------> unicode --------->str u = u'中文' #显示指定unicode类型对象u str = u.encode('gb2312') #以