【发布时间】:2013-11-12 22:25:05
【问题描述】:
我有一个字符串,它可能包含也可能不包含语法上有效的 Python 字符串文字。如果是,我想将其转换为它所代表的字符串,否则我想引发错误。有没有比
更好的方法# 'x' contains the putative string literal
s = ast.literal_eval(x)
if not isinstance(s, basestring):
raise ValueError("not a valid string literal: " + x)
特别是,由于这个字符串的来源,它可能包含一个复杂对象的repr,我不想浪费时间解析它然后把它扔掉。
另一种说法是,我希望 float 或 int 在应用于字符串时的行为,仅适用于字符串。
[注意:现有问题Python convert string literals to strings 推荐ast.literal_eval,但这是我希望能够击败的。]
【问题讨论】:
-
你可以通过
if x[0]==x[-1] and x[0] in '\'"'稍微短路它,但我认为这可能和它一样好
标签: python parsing python-2.x