Python 在字典中将数字日期转换为单词

Python 在字典中将数字日期转换为单词,python,string,date,datetime,dictionary,Python,String,Date,Datetime,Dictionary,我有一个示例字典d,其中包含日期,如上文所示'2003-01-01 13:01:00'。(我的d的len实际上是~700k,包含各种这样的日期。)我想知道是否有办法将日期转换回单词。例如,'2003-01-01 13:01:00'将变成'2003年1月1日下午1:01' 我期望的输出是这样的 d = {'A1': ['C', '2003-01-01 13:01:00', 'Lang', '2012-06-02 07:00:00', '55901', '2001-09-05 0

我有一个示例字典
d
,其中包含日期,如上文所示
'2003-01-01 13:01:00'
。(我的
d
len
实际上是~700k,包含各种这样的日期。)我想知道是否有办法将日期转换回单词。例如,
'2003-01-01 13:01:00'
将变成
'2003年1月1日下午1:01'

我期望的输出是这样的

d = {'A1': ['C',
  '2003-01-01 13:01:00',
  'Lang',
  '2012-06-02 07:00:00',
  '55901',
  '2001-09-05 00:00:00'],
    'A2': ['Eds',
  '2002-02-12 10:07:00',
    '12-3-54']}
我如何才能完成此输出?

参考下图,它获取dict并迭代和打印格式。

更新时间:2019.09.04 关于这一问题的全面落实:

导入日期时间
d={'A1':['C',
'2003-01-01 13:01:00',
"郎",,
'2012-06-02 07:00:00',
'55901',
'2001-09-05 00:00:00'],
“A2”:[“Eds”,
'2002-02-12 10:07:00',
'12-3-54']}
def num_2_单词(n):返回“”。加入([
str(n),

['th',st',nd',rd',th'][min(n%10,4)]如果不是11我已经写了这个代码,使用map来加速。但是它是否能加速还不确定。而且,我不知道几天后如何添加st

导入日期时间、时间
d={'A1':['C',
'2003-01-01 13:01:00',
"郎",,
'2012-06-02 07:00:00',
'55901',
'2001-09-05 00:00:00'],
“A2”:[“Eds”,
'2002-02-12 10:07:00',
'12-3-54']}
def时间重新格式化(numTime):
尝试:
date=datetime.datetime.StrTime(numTime,“%Y-%m-%d%H:%m:%S”)
strTime=date.strftime(“%B%d,%Y位于%I%p”)
除:
strTime=None
返回时间
def processDictItem(e):
k、 v=e
对于i,枚举(v)中的数据:
strtime=时间重新格式化(数据)
如果strtime不是None:
v[i]=strtime
返回(k,v)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
d=dict(映射(processdictem,d.items())
印刷品(d)
输出:

{'A1':['C','2003年1月1日下午1点','Lang','2012年6月2日上午7点','55901','2001年9月5日上午12点',
‘A2’:[‘Eds’,‘2002年2月12日上午10点’,‘12-3-54’]

您可以创建一个函数,该函数接受一个列表,将列表中的每个项目解析为datetime对象,如果失败,则跳过,将其重新构建为所需的日期格式,然后返回列表。您应该始终发布代码,而不是代码的图像。此外,您的代码只对列表而不是dict进行操作。
d = {'A1': ['C',
  'January 1st, 2003 at 1:01pm',
  'Lang',
  'June 2nd, 2012 at 7:00am',
  '55901',
  'September 5th, 2001'],
    'A2': ['Eds',
  'February 12th, 2002 at 10:07am', 
    '12-3-54']}
d = {'A1': ['C',
            '2003-01-01 13:01:00',
            'Lang',
            '2012-06-02 07:00:00',
            '55901',
            '2001-09-05 00:00:00'],
     'A2': ['Eds',
            '2002-02-12 10:07:00',
            '12-3-54']}
for key, value in d.items():
    new_value = []
    for item in value:
        try:
            date = datetime.datetime.strptime(item, '%Y-%m-%d %H:%M:%S')
            date_str = datetime.datetime.strftime(date, '%B , %Y at %I:%M%p')
            new_value.append(date_str)
        except:
            new_value.append(item)
    d[key] = new_value
print(d)
import datetime 
import json

d = {'A1': ['C',
  '2003-01-01 13:01:00',
  'Lang',
  '2012-06-02 07:00:00',
  '55901',
  '2001-09-05 00:00:00'],
    'A2': ['Eds',
  '2002-02-12 10:07:00',
    '12-3-54']}

suf = lambda n: "%d%s"%(n,{1:"st",2:"nd",3:"rd"}.get(n if n<20 else n%10,"th"))
daydict = dict(zip(range(1,32), [suf(n) for n in range(1,32)]))
#construct the datetime according to  the form of 'January 1st, 2003 at 1:01pm'
for k, v in d.items(): 
    index = 1
    for item in v[1::2]:

        tem = datetime.datetime.strptime(item, '%Y-%m-%d %H:%M:%S')
        x = tem.hour-12 if tem.hour > 12 else tem.hour
        y = 'pm' if tem.hour > 12 else 'am'

        d[k][index] = ' '.join([tem.strftime('%B'), daydict[tem.day] + ',', str(tem.year), str(x)+':'+tem.strftime('%M')+y])
        index += 2
print(json.dumps(d, indent=2))
{
  "A1": [
    "C",
    "January 1st, 2003 1:01pm",
    "Lang",
    "June 2nd, 2012 7:00am",
    "55901",
    "September 5th, 2001 0:00am"
  ],
  "A2": [
    "Eds",
    "February 12th, 2002 10:07am",
    "12-3-54"
  ]
}