python - 如何在没有 eval 的情况下取消列表/元组的字符串

标签 python string python-3.x

我正在尝试使用input获取元组的值。然而,自从 input将值设置为字符串,我也尝试取消字符串它。我发现eval适用于此目的,但它应该是 distrusted.虽然只要我私下使用代码就不会成为问题,但如果我要公开发布它,我希望使用尽可能最好的代码。

那么,还有另一种方法可以解开 tuple 的字符串吗?在Python 3 中?

这是我目前正在做的事情:

>>> a = input("What is the value? ")
What is the value? (3,4)
>>> a
'(3,4)'
>>> eval(a)
(3, 4)

最佳答案

使用 eval 的安全版本,ast.literal_eval,它是专为您想要实现的目标而设计的:

from ast import literal_eval
tup = literal_eval(a)

关于python - 如何在没有 eval 的情况下取消列表/元组的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246101/

相关文章:

javascript - 匹配字符串中模式的出现并在 javascript 中插入字符?

python - 网站天真地将 IP 作为形式参数 - 我无法追踪吗?

python - 当您拥有的只是一个可调用对象时,有没有一种方法可以访问方法的类

python - 字符串无法正确比较

python - 幂律数据拟合不正确

string - 三引号字符串的第一行会影响缩进吗?

python - Pandas DataFrame 重新采样中出现意外数量的 bin

python - 如何导入包含具有循环依赖的类的模块?

python - 使用参数替换读取 bash 环境变量集到 Python 变量中

python - 在 python 中 - 在嵌套字典中查找最大日期