【发布时间】:2019-02-13 01:57:37
【问题描述】:
我的代码的重点是应该有一个 yyyymmdd 的输入,答案是作为一个字符串出来,例如如果输入是“20191129”,那么输出将是“2019 年 11 月 29 日”
但是,我的代码中不断出现随机“密钥错误 '0'”,但我不明白这是为什么 这是我的代码:
def format_date(date):
year = date[:3]
main_month = date[4:5]
main_day = date[6:]
if main_month <= '01' and main_month >= '12':
return dic_month[main_month]
if main_day <= '01' and main_day >= '31':
return dic_day[main_day]
month = dic_month[main_month]
day = dic_day[main_day]
return month + ' ' + day + ' ' + year
这是我目前正在使用的词典:
dic_month = {'1': 'January', '2': 'February', '3': 'March', '4': 'April', '5': 'May',
'6': 'June', '7': 'July', '8': 'August', '9': 'September', '10': 'October',
'11': 'November', '12': 'December'}
dic_day = {'1': '1st', '2': '2nd', '3': '3rd', '4': '4th', '5': '5th', '6': '6th', '7': '7th',
'8': '8th', '9': '9th', '10': '10th', '11': '11th', '12': '12th', '13': '13th', '14': '14th',
'15': '15th', '16': '16th', '17': '17th', '18': '18th', '19': '19th', '20': '20th', '21': '21st',
'22': '22nd', '23': '23rd', '24': '24th', '25': '25th', '26': '26th', '27': '27th', '28': '28th',
'29': '29th', '30': '30th', '31': '31st',}
请帮忙
【问题讨论】:
-
确切的错误是什么?并注意你的字典没有一个 0 键。
-
您应该修复代码示例中的缩进。
-
另请注意,使用this 比使用
dict_day更容易。 -
date[6:]?我们看不到date。 -
您的切片错误 -
year是 3 个字符,main_month和main_day各是一个字符。一旦你解决了这个问题,它仍然会经常失败,因为你的字典键不包含前九个值的前导零。
标签: python-3.x keyerror