我正在尝试从https://finansial.bisnis.com/read/20210506/90/1391096/laba-bank-mega-tumbuh-dua-digit-kuartal-i-2021-ini-penopangnya
中进行刮取。我正在努力抓取新闻的日期,以下是我的代码:
news['tanggal'] = newsScrape['date']
dates = []
for x in news['tanggal']:
x = listToString(x)
x = x.strip()
x = x.replace('\r', '').replace('\n', '').replace(' \xa0|\xa0', ',').replace('|', ', ')
dates.append(x)
dates = listToString(dates)
dates = dates[0:20]
if len(dates) == 0:
continue
news['tanggal'] = dt.datetime.strptime(dates, '%d %B %Y, %H:%M')
但我有一个错误:
ValueError: time data '06 Mei 2021, 11:32 ' does not match format '%d %B %Y, %H:%M'
我的假设是因为Mei
是印度尼西亚语,同时格式需要May
是英语。如何将Mei
更改为May
?我试过dates = dates.replace('Mei', 'May')
,但对我不起作用。当我尝试它时,我得到了错误ValueError: unconverted data remains:
日期的类型是string
。谢谢
问题似乎只是您的尾部空白,这解释了错误
ValueError: unconverted data remains:
。它抱怨无法转换剩余的数据(空白)此外,要将所有印尼月份转换为英语,您可以使用字典:
您可以尝试以下方法
结果:
您对5月份的假设->;Mei更改是正确的,替换后可能会遇到问题的原因是字符串中的尾随空格,而这些空格在格式中没有考虑。可以使用
string.rstrip()
删除这些空格当 这确实解决了这里的问题,在
dates = dates[0:20]
之后像这样缩短字符串是很麻烦的。考虑使用ReGEX同时获得适当的格式。相关问题 更多 >
编程相关推荐