当前位置: 代码迷 >> 综合 >> 如何将内容时元组格式的字符串转为元组,保留原格式?
  详细解决方案

如何将内容时元组格式的字符串转为元组,保留原格式?

热度:6   发布时间:2024-02-06 05:07:49.0

碰到的问题:数据库中有一个类型为字符串的字段,该字段对应的值是元组的形式,但是值类型仍属于字符串,在取出使用时,因为类型不匹配出大问题,很烦!

取出的数据和类型如下:

('2018-01-01', '2022-07-22')
<class 'str'>

解决方法:

1.首先,我直接使用tuple对字符串进行转换,发现完全不行,直接将字符串的每一个字符都转为了元组里的元素。(失败)

('(', "'", '2', '0', '1', '6', '-', '0', '1', '-', '0', '1', "'", ',', ' ', "'", '2', '0', '2', '2', '-', '0', '7', '-', '2', '2', "'", ')')

2.在网上最终找到了别人和我一样的问题及解决方法:

使用python内置的eval函数,解决。(顿时觉得这是个神奇的函数)

>>> c = "(1,2,3)"
>>> type(c)
<class 'str'>
>>> d = eval(c)
>>> d
(1, 2, 3)
>>> type(d)
<class 'tuple'>

3.eval函数(之前并没有使用过该函数,它能这样转格式不免让我好奇了起来)

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

语法

以下是 eval() 方法的语法:

eval(expression[, globals[, locals]])

参数

  • expression -- 表达式。
  • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
  相关解决方案