2010-11-10 3 views
3

Любые мысли о наилучшем способе реализации таблицы (т. Е. Небольшой реляционной базы данных) в python без использования внешних модулей внешних баз данных и , когда модуль sqlite3 поврежден или отсутствует.Лучший способ для таблицы python?

user:~ $ python3 
>>> import sqlite3 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/bns/rma/local/python/lib/python3.1/sqlite3/__init__.py", line 24, in <module> 
    from sqlite3.dbapi2 import * 
    File "/bns/rma/local/python/lib/python3.1/sqlite3/dbapi2.py", line 27, in <module> 
    from _sqlite3 import * 
ImportError: No module named _sqlite3 
>>> ^D 
user:~ $ python2.7 
Python 2.7 (r27:82500, Jul 28 2010, 11:39:31) 
[GCC 3.4.3 (csl-sol210-3_4-branch+sol_rpath)] on sunos5 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sqlite3 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/dcottr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module> 
    from dbapi2 import * 
    File "/home/dcottr/local/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module> 
    from _sqlite3 import * 
ImportError: No module named _sqlite3 
>>> 
+0

Вам нужно будет описать ваши требования лучше. –

+1

@sqace_cowboy: получите что-то маленькое, реализованное быстро на сломанной системе без sqlite sqlite3. Решение ниже, я думаю ... – mathtick

+0

Принял полу-ответ, проигнорировал разумный ответ и даже не потрудился в Google (имя модуля Python - 'sqlite3', а не' sqlite', в поисках "python sqlite" сказал бы вам). -1, даже не пытаясь. –

ответ

4

В основном вы можете представлять таблицы как список списков/кортежей. Тогда вы можете иметь dict для представления индексов.

Будете ли вы делать запросы в таблице или просто «иметь» это представление? Для чего вам это нужно?

+0

Спасибо. Я сделаю несколько запросов. Я думаю, что список диктонов, вероятно, имеет смысл. Тогда я могу просто запросить вещи с чем-то вроде [x for x в данных, если условие (x) == True]. Не должно быть слишком ужасно. Я просто хочу что-то сделать, прежде чем тратить время на выполнение задач sysadmin, пытаясь разбить устаревшие работы python и баз данных. – mathtick

2

Начиная с версии 2.5 python поддерживает Sqlite. Он очень легкий и не внешний.

13

sqlite3.

  • Он поставляется с python, вам не нужны внешние базы данных или дополнительные модули.
  • Он может создать всю базу данных на памяти. Вам не нужны дополнительные файлы на диске , если вы этого не хотите.
  • Это молния быстро.
  • Это может сделать современные запросы на таблицах, как JOIN s

Там нет причин, чтобы не использовать его. Это будет быстрее и полнее, чем любое решение, которое вы свернете самостоятельно.

+1

Чтобы немного поправиться, SQLite работает очень быстро, пока вы остаетесь в рамках того, что оно предназначено для выполнения.Если вы попытаетесь найти много писателей в базе данных SQLite, вы будете плакать себе, чтобы спать, и поскольку его SQL-планировщик не очень продвинут, он не всегда быстр при сложных запросах. Тем не менее, это наиболее широко распространенное программное обеспечение базы данных в мире, и это почти наверняка то, чего хочет OP. –

+0

Модуль sqlite3 поставляется с python? но для этого требуется sqlite3, который не является стандартным? В любом случае ни sqlite, sqlite3, ни _sqlite3.so не доступны ни на одной из версий python (2.4.2.7 3.0), установленных здесь. Мир - прекрасное место. – mathtick

+0

@ S.Lott ... извините, что это означало версии python 2.4, 2.7 и 3.1.2 – mathtick

Смежные вопросы