如何在Python中提取文件数据

3

我希望从给定的字符串中根据标签提取日期。

我的字符串是 -

DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 
NUMBER: 201707250008754 RATE:  10.00

我希望有这样一个功能 - 如果我输入“日期”,它应该只返回7/25/2017 如果我输入“返回日期”,它应该返回7/26/2017 如果我输入“数字”,它应该返回201707250008754 以此类推。
我们如何在Python 2.7中实现这个功能?(注意:日期和数字总是随机出现在字符串中)

如果您的问题只涉及Python 2,请不要添加Python 3标签。 - glibdud
我会从编写一些代码开始。你目前尝试了什么? - SiHa
2个回答

3
你可以使用re从字符串内容创建一个字典:
import re
s = 'DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 NUMBER: 201707250008754 RATE: 10.00'
results = re.findall('[a-zA-Z\s]+(?=:)|[\d/\.]+', s)
d = dict([re.sub('^\s+', '', results[i]), results[i+1]] for i in range(0, len(results), 2))
for i in ['DATE', 'RETURN DATE', 'NUMBER']:
   print(d[i])

输出:

7/25/2017
7/26/2017
201707250008754

1
使用dict将键(例如:'DATE')映射到其值。
import re
s = '''DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 NUMBER: 201707250008754 RATE:  10.00'''

items = re.findall('\s*(.*?)\:\s*([0-9/.]*)',s)
#[('DATE', '7/25/2017'), ('DATE OPENED', '7/25/2017'), ('RETURN DATE', '7/26/2017'), ('NUMBER', '201707250008754'), ('RATE', '10.00')]

info = dict(items)
#{'DATE': '7/25/2017', 'DATE OPENED': '7/25/2017', 'RETURN DATE': '7/26/2017', 'NUMBER': '201707250008754', 'RATE': '10.00'}


for key in ['DATE', 'RETURN DATE', 'NUMBER']:
    print(info[key])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接