Python字符串列出最佳实践

Rut*_*uth 5 python string list

我有这样的字符串 "['first', 'sec', 'third']"

将此转换为字符串列表的最佳方法是什么. ['first', 'sec', 'third']

ale*_*cxe 10

我用literal_eval(),它是安全的:

安全地评估表达式节点或包含Python表达式的字符串.提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None.

这可以用于安全地评估包含来自不可信来源的Python表达式的字符串,而无需自己解析值.

>>> import ast
>>> ast.literal_eval("['first', 'sec', 'third']")
['first', 'sec', 'third']
Run Code Online (Sandbox Code Playgroud)

除了文字表达式之外,它不会评估任何内容:

>>> ast.literal_eval('"hello".upper()')
...
ValueError: malformed string

>>> ast.literal_eval('"hello"+" world"')
...
ValueError: malformed string
Run Code Online (Sandbox Code Playgroud)

  • +1 - 这是最好的方法,因为`ast.literal_eval()`是安全的,而不是`eval()`.也就是说,最好的选择可能是以更标准化的格式存储您的数据. (2认同)