您好我是python和regex的新手.我有一个大的CSV文件,其中%age composition包含类似的字段,其中包含以下值:
'34% passed 23% failed 46% deferred'
如何拆分此字符串以便获取字典对象:
{'passed': 34, 'failed': 23, 'deferred': 46} 每排?
我试过这个:
for line in csv_lines:
for match in re.findall('[\d\s%%]*\s', line)
Run Code Online (Sandbox Code Playgroud)
但这只取%年龄值
如果你仍然想要使用正则表达式,你可以使用这个:
(\w+)%\s(\w+)
Run Code Online (Sandbox Code Playgroud)
哪个匹配一个或多个字母数字字符(替代:),[0-9a-zA-Z_]+后跟%符号,空格字符和一个或多个字母数字字符.括号帮助捕获适当的字符集.
演示:
>>> import re
>>> s = '34% passed 23% failed 46% deferred'
>>> pattern = re.compile(r'(\w+)%\s(\w+)')
>>> {value: key for key, value in pattern.findall(s)}
{'failed': '23', 'passed': '34', 'deferred': '46'}
Run Code Online (Sandbox Code Playgroud)