首页 > 解决方案 > 我怎样才能解析这个表格?

问题描述

输入:

NAME: amiee AGE: 10 SHCOOL: elementary school

这真的很长,可能有10多个科目。如果没有...,我如何轻松解析这句话split?我想将此表格保存到字典中,例如。

{amiee:{AGE:10, SCHOOL: elementary school ... }}

标签: pythonparsing

解决方案


您可以使用re.findall从输入字符串中提取键值对列表,使用它来创建中间字典,然后从字典中弹出名称,并使用名称和中间字典中剩余的内容创建一个新字典:

import re
form = 'NAME: amiee AGE: 10 SHCOOL: elementary school'
d = dict(re.findall(r'([A-Z]+): (.*?)(?=\s*[A-Z]+: |$)', form))
name = d.pop('NAME')
print({name: d})

这输出:

{'amiee': {'AGE': '10', 'SHCOOL': 'elementary school'}}

推荐阅读