【发布时间】:2017-06-09 22:19:26
【问题描述】:
我用 python 解析 html 并且有日期字符串:[ 24-Янв-17 07:24 ]。 “Янв”是“简”。我想把它转换成日期时间对象。
# Some beautifulsoup parsing
timeData = data.find('div', {'id' : 'time'}).text
import locale
locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
result = datetime.datetime.strptime(timeData, u'[ %d-%b-%y %H:%M ]')
错误是:
ValueError: 时间数据 '[ 24-\xd0\xaf\xd0\xbd\xd0\xb2-17 07:24 ]' 确实 不匹配格式 '[ %d-%b-%y %H:%M ]'
type(timeData) 返回 unicode。从utf-8 编码timeData 返回UnicodeEncodeError。怎么了?
chardet 返回{'confidence': 0.87625, 'encoding': 'utf-8'},当我写:datetime.datetime.strptime(timeData.encode('utf-8'), ...) 它返回错误如上。
原始页面有window-1251编码。
print type(timeData)
print timeData
timeData = timeData.encode('cp1251')
print type(timeData)
print timeData
返回
<type 'unicode'>
[ 24-Янв-17 07:24 ]
<type 'str'>
[ 24-???-17 07:24 ]
【问题讨论】:
-
@cxw 不,这对我没有帮助。