字典列表中的更改日期 [英] Altering date in list of dictionary
本文介绍了字典列表中的更改日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
背景
我有一个字典值列表
list_of_dic = [{'id': 'T1','type': 'LOCATION-OTHER','start': 142,'end': 148,'text': 'California'},
{'id': 'T2', 'type': 'PHONE', 'start': 342, 'end': 352, 'text': '123456789'},
{'id': 'T3', 'type': 'DATE', 'start': 679, 'end': 687, 'text': '1/1/2000'},
{'id': 'T10','type': 'DOCTOR','start': 692,'end': 701,'text': 'Joe'},
{'id': 'T11', 'type': 'DATE', 'start': 702, 'end': 710, 'text': '5/1/2000'}]
目标
1)在list_of_dict
2)在相应的'text: 'value'
示例
{'id': 'T3', 'type': 'DATE', 'start': 679, 'end': 687, 'text': '1/1/2000'}
将成为
{'id': 'T3', 'type': 'DATE', 'start': 679, 'end': 687, 'text': '1/3/2000'}
所需的输出
desired_list_of_dic = [{'id': 'T1','type': 'LOCATION-OTHER','start': 142,'end': 148,'text': 'California'},
{'id': 'T2', 'type': 'PHONE', 'start': 342, 'end': 352, 'text': '123456789'},
{'id': 'T3', 'type': 'DATE', 'start': 679, 'end': 687, 'text': '1/3/2000'},
{'id': 'T10','type': 'DOCTOR','start': 692,'end': 701,'text': 'Joe'},
{'id': 'T11', 'type': 'DATE', 'start': 702, 'end': 710, 'text': '5/3/2000'}]
推荐答案
使用datetime
模块
例如:
import datetime
list_of_dic = [{'id': 'T1','type': 'LOCATION-OTHER','start': 142,'end': 148,'text': 'California'},
{'id': 'T2', 'type': 'PHONE', 'start': 342, 'end': 352, 'text': '123456789'},
{'id': 'T3', 'type': 'DATE', 'start': 679, 'end': 687, 'text': '1/1/2000'},
{'id': 'T10','type': 'DOCTOR','start': 692,'end': 701,'text': 'Joe'},
{'id': 'T11', 'type': 'DATE', 'start': 702, 'end': 710, 'text': '5/1/2000'}]
for i in list_of_dic: #Iterate list
if i["type"] == 'DATE': #Check 'type'
i["text"] = (datetime.datetime.strptime(i["text"], "%m/%d/%Y") + datetime.timedelta(days=2)).strftime("%m/%d/%Y") #Increment days.
print(list_of_dic)
输出:
[{'end': 148,
'id': 'T1',
'start': 142,
'text': 'California',
'type': 'LOCATION-OTHER'},
{'end': 352, 'id': 'T2', 'start': 342, 'text': '123456789', 'type': 'PHONE'},
{'end': 687, 'id': 'T3', 'start': 679, 'text': '01/03/2000', 'type': 'DATE'},
{'end': 701, 'id': 'T10', 'start': 692, 'text': 'Joe', 'type': 'DOCTOR'},
{'end': 710, 'id': 'T11', 'start': 702, 'text': '05/03/2000', 'type': 'DATE'}]
-
datetime.timedelta(days=N)
->增加天数 -
datetime.datetime.strptime
->将字符串转换为日期时间对象 -
strftime
->将日期时间对象转换为字符串 datetime.timedelta(days=N)
--> to increment daysdatetime.datetime.strptime
--> to convert string to datetime objectstrftime
--> to convert datetime object to string
这篇关于字典列表中的更改日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文