You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebScraper获取网球选手数据:如何将冗余字符的DOB转为可用日期

解决网球选手出生日期格式转换问题

嘿,这个问题我之前帮人处理过类似的,咱们一步步来搞定它!你的字典里dob字段被一堆空白字符(换行、制表符)和括号包裹着,核心就是先清理字符串,再转换成标准日期格式。

步骤1:清理原始出生日期字符串

首先咱们得把那些无用的字符去掉,只留下纯日期内容:

player_data = {'first': 'Roger', 'last': 'Federer', 'dob': '\r\n\t\t\t\t\t\t\t\t\t\t\t(1981.08.08)\r\n\t\t\t\t\t\t\t\t\t\t'}

# 第一步:去掉前后所有空白字符(换行、制表符、空格)
cleaned_dob = player_data['dob'].strip()
# 第二步:去掉首尾的括号
cleaned_dob = cleaned_dob.strip('()')
# 现在cleaned_dob的值是:"1981.08.08"

步骤2:转换成标准日期格式

接下来用Python的datetime模块把清理后的字符串转换成可使用的标准格式(比如1981-08-08这种ISO格式,或者直接得到date对象):

from datetime import datetime

# 解析字符串为datetime对象
date_object = datetime.strptime(cleaned_dob, '%Y.%m.%d')

# 转换成ISO格式的日期字符串(适合存储或展示)
standard_dob_str = date_object.isoformat()[:10]
# 或者直接得到date类型的对象(适合后续日期计算)
standard_dob_date = date_object.date()

步骤3:更新字典

最后把处理好的日期放回你的字典里:

# 用字符串格式更新
player_data['dob'] = standard_dob_str
# 或者用date对象更新
# player_data['dob'] = standard_dob_date

简洁版一行代码

如果想省点行数,也可以把清理和转换合并成一行:

from datetime import datetime

player_data['dob'] = datetime.strptime(player_data['dob'].strip().strip('()'), '%Y.%m.%d').date()

这样处理完之后,你的字典就会变成:

{'first': 'Roger', 'last': 'Federer', 'dob': datetime.date(1981, 8, 8)}
# 或者如果用字符串格式的话:{'first': 'Roger', 'last': 'Federer', 'dob': '1981-08-08'}

内容的提问来源于stack exchange,提问作者DJDiaper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:18:11