【问题标题】:How can I parse this form? [duplicate]我怎样才能解析这个表格? [复制]
【发布时间】:2019-04-09 09:29:45
【问题描述】:

输入:

NAME: amiee AGE: 10 SHCOOL: elementary school

这真的很长,可能有10多个主题。 如果没有split...,如何轻松解析这句话? 我想把这个表格保存到字典里,比如。

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

【问题讨论】:

  • 展示你自己解决问题的努力和代码(问题中格式正确的文本)
  • 为什么要“不拆分”解析它?
  • @blhsing:可能是因为这是学校的家庭作业或类似的事情。
  • @blhsing 因为我用......手动拆分解决了这个问题,比如:data.split("NAME:")[1],但我认为这不是最好的可扩展形式的方式
  • @blhsing 也使用C语言,我们可以用简单的一行来解决这个问题!扫一扫!但我只是好奇它是否有更好的方法

标签: python parsing


【解决方案1】:

您可以使用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'}}

【讨论】:

  • 非常感谢。我不知道 |$ ,谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多