2016-11-23 48 views
1

我想,如下所示日期字符串转换为日期对象在Python 3:得到错误解析日期字符串在俄语在Python 3

from datetime import datetime 
import locale 

date_string = "Добавлено: суббота, 26 декабря 2015 г. в 11:01:59" 
locale.setlocale(locale.LC_TIME, "rus") 
ru_date_object = datetime.strptime(date_string , 'Добавлено: %A, %d %B %Y г. в %H:%M:%S') 
print(ru_date_object) 

在执行上面的代码中,我得到以下错误:

Traceback (most recent call last): File "F:\Users***\Desktop\DateParser\20 nov.py", line 54, in ruDate = datetime.strptime(dateStr6, '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: %A, %d %B %Y \u0433. \u0432 %H:%M:%S') File "F:\Users***\AppData\Local\Programs\Python\Python35-32\lib_strptime.py", line 510, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "F:\Users***\AppData\Local\Programs\Python\Python35-32\lib_strptime.py", line 343, in _strptime (data_string, format)) ValueError: time data '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: \u0441\u0443\u0431\u0431\u043e\u0442\u0430, 26 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2015 \u0433. \u0432 11:01:59' does not match format '\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e: %A, %d %B %Y \u0433. \u0432 %H:%M:%S'

回答

1

问题出现在单词'декабря',它不是主格。要将此字符串解析为日期,您应该将'декабря'替换为'декабрь'。你可以这样做:

from datetime import datetime 
import locale 

date_string = "Добавлено: суббота, 26 декабря 2015 г. в 11:01:59" 
locale.setlocale(locale.LC_TIME, "rus") 
d = {'января': 'январь', 'декабря': 'декабрь'} 
for k, v in d.items(): 
    date_string = date_string.replace(k, v) 
ru_date_object = datetime.strptime(date_string , 'Добавлено: %A, %d %B %Y г. в %H:%M:%S') 
print(ru_date_object)