假设我有一个字符串:
我希望从st中提取以下内容。
st = "'aaa': '1', 'bbb': '2.3', 'ccc': 'name'"
我希望从st中提取以下内容。
['1', '2.3', 'name']
我该如何做到这一点?
谢谢。
您可以首先使用ast.literal_eval
创建一个 dict
然后获取其中的values
:
import ast
st = "'aaa': '1', 'bbb': '2.3', 'ccc': 'name'"
print (ast.literal_eval('{' + st + '}'))
{'aaa': '1', 'bbb': '2.3', 'ccc': 'name'}
#python 3 add list
print (list(ast.literal_eval('{' + st + '}').values()))
['1', '2.3', 'name']
#python 2
print ast.literal_eval('{' + st + '}').values()
['1', '2.3', 'name']
使用 ast
模块来完成会更好,就像 jezrael 所做的那样。这里还有另一种使用正则表达式的解决方案:
import re
st = "'a': '1', 'b': '2.3', 'c': 'name', 'd': 229, 'e': '', 'f': '228', 'g': 12"
print re.findall(r'\'\S+?\':\s*\'?(.*?)\'?(?:,|$)', st)
输出:
['1', '2.3', 'name', '229', '', '228', '12']
在regex101上的演示: