Чтение из удаленных баз данных sqlite3

На моем сервере я пытаюсь читать из множества баз данных sqlite3 (отправленных от веб-клиентов) и обрабатывать их данные. Файлы db находятся в ведомости S3, и у меня есть их url, и я могу открыть их в памяти.

Теперь проблема заключается в том, что sqlite3.connect принимает только абсолютную строку пути, и я не могу передать ей файл в памяти.

 conn=sqlite3.connect() #how to pass file in memory or url c=conn.cursor() c.execute('''select * from data;''') res=c.fetchall() # other processing with res 

One Solution collect form web for “Чтение из удаленных баз данных sqlite3”

SQLite требует, чтобы файлы базы данных сохранялись на диске (он использует различные блокировки и методы подкачки). Недостаточно файла в памяти.

Я бы создал временный каталог для хранения файла базы данных, записи его в этот каталог и подключения к нему. Справочник предоставляет SQLite пространство для записи журналов фиксации.

Чтобы справиться с этим, менеджер контекста мог бы быть полезным:

 import os.path import shutil import sqlite3 import sys import tempfile from contextlib import contextmanager @contextmanager def sqlite_database(inmemory_data): path = tempfile.mkdtemp() with open(os.path.join(path, 'sqlite.db'), 'wb') as dbfile: dbfile.write(inmemory_data) conn = None try: conn = sqlite3.connect(os.path.join(path, 'sqlite.db')) yield conn finally: if conn is not None: conn.close() try: shutil.rmtree(path) except IOError: sys.stderr.write('Failed to clean up temp dir {}'.format(path)) 

и используйте это как:

 with sqlite_database(yourdata) as connection: # query the database 

Это записывает данные в память на диск, открывает соединение, позволяет использовать это соединение, а затем очищает после вас.

  • Sqlite3, OperationalError: невозможно открыть файл базы данных
  • Использование нескольких курсоров во вложенном цикле в sqlite3 из python-2.7
  • SQLite не сохраняет данные между приложениями
  • Нужно ли мне несколько объектов курсора циклически перебирать набор записей и обновлять их одновременно?
  • Как использовать вакуумную команду SQLite 3 в Python
  • Если подстановка этой строки не одобряется формированием SQL-запросов, как вы назначаете имя таблицы динамически?
  • Python и sqlite3 - импорт и экспорт баз данных
  • sqlite: проверка блокировки чтения / записи
  •  
    Interesting Posts for Van-Lav

    Используя boto, установите content_type в файлах, которые уже присутствуют на s3

    Расширьте некоторые подстроки элегантно внутри большей строки в python

    python paramiko ssh

    Что не так с моим шаблоном регулярного выражения, чтобы найти повторяющиеся циклы в Python?

    TypeError: unhashable type: 'dict', когда dict используется как ключ для другого dict

    Python Flask Render Text из переменной, например render_template

    Почему язык Python не имеет метода writeln ()?

    .xlsx и xls (последние версии) в pdf с использованием python

    Python: копия переменной

    Сортировка словаря по ключу с использованием локали / сортировки

    Создание динамической таблицы и отображение ORM в SqlAlchemy

    Обратный список с использованием карты / уменьшения

    Python: несогласованность в том, как вы определяете функцию __setattr__?

    Python 2.7 на Ubuntu

    SWIG-интерфейс библиотеки C на Python (создание «итерабельного» типа данных Python из структуры последовательности C)

    Python - лучший язык программирования в мире.