Я думаю, что моя проблема связана с полем даты твиттера create_at, но я не уверен.Вот таблица, которая, как мне кажется, является проблемой:
sql_create_tweets_table = """ CREATE TABLE IF NOT EXISTS tweets (
id integer PRIMARY KEY,
user_id integer NOT NULL,
created_at text,
short_text text,
full_text text
); """
Я конвертирую дату в Твиттере созданный_тем следующим образом:
vcreated_at = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(data['created_at'],'%a %b %d %H:%M:%S +0000 %Y'))
Это меняет входящие "Вт 13 ноября 19:07: 58 +0000 2018 "до" 2018-11-13 19:07:58 ", что я считаю приемлемым для sqLite.В обновление включены только два целых и два текстовых поля.Поэтому я подозреваю, что дата вызывает ошибку, но я не уверен, как это проверить.Когда я проверяю тип create_at и vcreated_at, они оба TEXT, как и столбец таблицы.
Это код, который пытается добавить строку, но не удается:
def updateTables(vcreated_at, vid, vtext, vlongtext, vuser_id, vname,
vscreen_name):
# now update the sql file
conn = create_connection(my_file)
if conn is not None:
cur = conn.cursor()
try:
cur.execute('''
INSERT INTO
tweets
VALUES
(?,?,?,?,?) ''',
(vcreated_at, vid, vtext, vlongtext, vuser_id))
except Exception as e: print(e)
cur.execute('''
INSERT INTO
users
VALUES
(?,?,?) ''',
(vuser_id, vname, vscreen_name))
conn.commit()
conn.close()
Потраченные рабочие часына этом но застрял!