В моем скрипте Python я использую sqlachemy для подключения к базе данных sqlite. Многие сценарии потерпели неудачу с сообщением об ошибке
cursor.execute(statement, parameters)
sqlite3.OperationalError: disk I/O error
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) disk I/O error
...
[SQL: SELECT headline, body, NYTime, subjects, country, pid, ric, mic, ticker FROM news WHERE sector LIKE '%Energy%' AND ticker LIKE (?) AND NYTime BETWEEN (?) AND (?)]
[parameters: ('%CRC%', datetime.date(2006, 4, 16), datetime.date(2006, 4, 19))]
(Background on this error at: http://sqlalche.me/e/e3q8)
Когда я снова запустил сценарий, задание было успешно выполнено. Я предполагаю, что скрипт не выполнен, потому что слишком много скриптов пытались получить доступ к одной и той же базе данных. Мои вопросы 1) Правильно ли мое предположение? 2) Как я могу предотвратить это?
Редактировать: я пытаюсь прочитать из базы данных. Мой код выглядит следующим образом
db_dir = 'database_directory'
engine = create_engine("sqlite:///" + db_dir + "database_name.db")
sql = "SELECT headline, body, NYTime, subjects, country, ticker\
FROM news\
WHERE\
sector LIKE '%Energy%'\
AND\
ticker LIKE (?)\
AND\
NYTime BETWEEN (?) AND (?)"
for i in np.arange(len(df_2006_health)):
event_date = df_2006_health.Date.iloc[i]
sta_date = event_date - timedelta(days=1)
end_date = event_date + timedelta(days=2)
symbol = '%' + df_2006_health.Symbols.iloc[i] + '%'
if i == 0:
df = pd.read_sql_query(sql, engine, params=(symbol,
sta_date, end_date))