将一个字符串元组转换为元组。

19
我有一个用户输入的字符串,它已经以元组格式存在,我想将其转换/强制转换为Python中的实际元组。我该如何实现?例如:
strTup = '(5, 6)'

希望将上述内容转换为元组(5,6)。我尝试了tuple(strTup),但它并没有起作用,因为它将每个字符都变成了自己的元组。


17
ast.literal_eval(strTup) - Joran Beasley
2
请参阅文档 - jonrsharpe
谢谢@JoranBeasley,我甚至没有听说过ast模块;非常棒! - oscilatorium
请参考以下两个链接:https://dev59.com/yWUp5IYBdhLWcg3wj4Hu 和 https://dev59.com/SnNA5IYBdhLWcg3wHp-B#1087625。 - CT Zhu
1个回答

24

你可以将其传递给 eval() (注意:这是不安全的):

只需执行:

    <!-- language: python -->
    strTup = '(5,6)'
    eval(strTup)

19
这是非常糟糕的建议!!! 用户输入的字符串可能包含任意复杂(并潜在恶意)代码,您将盲目地在服务器上对其进行评估! 而是请使用ast.literal_eval - crypdick
1
请注意,如果您确定数据,并且用户没有实际生成该数据的方法,则仍可以使用eval,使用ast.literal_eval是正确的方法。 - Muneeb Ahmad Khurram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接