-
慕尼黑5688855
>>> import ast>>> x = u'[ "A","B","C" , " D"]'>>> x = ast.literal_eval(x)>>> x['A', 'B', 'C', ' D']>>> x = [n.strip() for n in x]>>> x['A', 'B', 'C', 'D']ast.literal_eval:使用ast.literal_eval,您可以安全地评估表达式节点或包含Python表达式的字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。
-
冉冉说
这eval很危险 - 你不应该执行用户输入。如果你有2.6或更新,使用ast而不是eval:>>> import ast>>> ast.literal_eval('["A","B" ,"C" ," D"]')["A", "B", "C", " D"]一旦你有了,那strip就是字符串。如果您使用的是旧版本的Python,则可以使用简单的正则表达式非常接近您想要的内容:>>> x='[ "A", " B", "C","D "]'>>> re.findall(r'"\s*([^"]*?)\s*"', x)['A', 'B', 'C', 'D']这不如ast解决方案,例如它不能正确处理字符串中的转义引号。但它很简单,不涉及危险的评估,并且如果你使用的是较旧的Python,可能对你的目的来说已经足够好了。
-
RISEBY
json只要存在字典化的字典列表,该模块就是更好的解决方案。该json.loads(your_data)函数可用于将其转换为列表。>>> import json>>> x = u'[ "A","B","C" , " D"]'>>> json.loads(x)[u'A', u'B', u'C', u' D']同样>>> x = u'[ "A","B","C" , {"D":"E"}]'>>> json.loads(x)[u'A', u'B', u'C', {u'D': u'E'}]
-
慕码人2483693
import astl = ast.literal_eval('[ "A","B","C" , " D"]')l = [i.strip() for i in l]