将字符串转换为元组 - ast.literal_eval()不起作用

时间:2017-10-31 05:18:15

标签: python data-structures tuples

我从arg_parse获取一个字符串列表作为参数,如果很容易的话,我想将其中一些字符串转换为元组。

以下是我从argparse获得的列表:

['adding_light', '(shift_right_cv,shift_left_cv)']

我想知道如何将此'(shift_right_cv,shift_left_cv)'转换为元组。

我不想使用eval,因为这些字符串将由用户输入(argparse参数)。

不幸的是,ast.literal.eval()没有'工作 - 我得到

raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Name object at 0x00000000036A9BA8>
>>> 

已尝试过这些主题的建议(不是复杂的):

Parse a tuple from a string?

Convert a string to a tuple

如果没有简单的解决方案,我可能只是将元组变成一个列表 - 所以我将从argparse返回一个嵌套列表,看看是否更容易处理。 我也可以使用RE,但我担心正确覆盖所有情况(用户输入可能会破坏代码)。

谢谢。

0 个答案:

没有答案