Как построить индексную таблицу (python dict like) в python с помощью sqlite3 - PullRequest
0 голосов
/ 18 июня 2010

Предположим, у меня один список строк может иметь дублирующиеся элементы:

A
B
C
A
A
C
D
E
F
F

Я хочу, чтобы список мог назначить уникальный индекс для каждого элемента, выглядит так:

1   A
2   B
3   C
4   D
5   E
6   F

Теперь я создал базу данных sqlite3 с оператором SQL ниже:

CREATE TABLE aa ( myid INTEGER PRIMARY KEY AUTOINCREMENT,
                  name STRING, 
                  UNIQUE (myid) ON CONFLICT FAIL,
                  UNIQUE (name) ON CONFLICT FAIL);

План состоит в том, чтобы вставить каждую строку в базу данных в python.вставить в python модуль sqlite3?Например: программа выведет предупреждающее сообщение о том, какой элемент конфликтует, и продолжит следующее действие вставки при вставке в python?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 июня 2010

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

try:
    conn.excecute('...')
except IntegrityError:
    pass
1 голос
/ 18 июня 2010

Вы можете использовать набор для фильтрации двойных записей в вашем списке и просто вставить значения:

>>> set(['A', 'B', 'C', 'D', 'A', 'A', 'A', 1, 2, 1, 3, object(), object()])
set(['A', 1, 'C', 'B', 'D', 2, <object object at 0x100274590>, 3, <object object
 at 0x1002746a0>])

или используйте условие try-exception для каждого коммита, чтобы проверить, есть ли значение в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...