我有以下包含这些列表的文本文件:
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '0']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:06 ', '1']
['2009-08-31 23:58:07 ', '1']
['2009-08-31 23:58:07 ', '1']
['2009-08-31 23:58:07 ', '1']
第二个元素是整数,但是,第一个元素是字符串。我需要每个lis的第一个元素是日期而不是字符串吗?
我尝试了以下代码:
word[0]=datetime.strptime(word[0],'%Y/%m/%d %H:%M:%S')
但我收到此错误:
ValueError: time data '2009-04-02 22:50:06 ' does not match format '%Y/%m/%d %H:%M:%S'
我当前用于清除数据的代码如下:
with open('newdata.txt') as f:
for line in f:
tweet=re.sub(r'T\t',"",line)
t=re.sub(r'W\t',"\/\/",tweet)
data=t.split("\/\/")
sentiment_value= s.sentiment(data[1])
data.append(sentiment_value)
words = [w.replace('pos', '1') for w in data]
word=[w.replace('neg','0')for w in words]
del word[1]
print(word)
答案 0 :(得分:2)
datetime.strptime(word[0], '%Y-%m-%d %H:%M:%S ')
将起作用。请注意'-'
和尾随空格。根据您的用例以及是否有更多不同的脏数据,最好剥离输入或使用一些更强大的实用程序,例如dateparser。
答案 1 :(得分:0)
简单地写:
from datetime import datetime
word=['2009-08-31 23:58:09 ', 1]
value = datetime.strptime(word[0].strip(),'%Y-%m-%d %H:%M:%S')
print(value)
注意:如果不去除两边的空白,则会出现unconverted data remains
错误。
答案 2 :(得分:0)
import datetime
word = ['2009-08-31 23:58:09 ', 1]
将'%Y /%m%d%H:%M:%S'更改为'%Y-%m-%d%H:%M:%S'
word[0]=datetime.datetime.strptime(word[0],'%Y-%m-%d %H:%M:%S')