Проблема с сохранением Pandas данных в базу данных sqlite, неподдерживаемый тип данных? - PullRequest
0 голосов
/ 01 марта 2020

У меня есть следующий pandas фрейм данных:

          lists
    0  [1, 2, 3, 4]
    1        [1, 3]

Я пытаюсь поместить его в базу данных, согласно документации :

from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False) 
df.to_sql('name1', con=engine)

После этого я получил огромную трассировку стека, с наиболее значимым:

(sqlite3.InterfaceError) Error binding parameter 1 - probably unsupported type.
[SQL: INSERT INTO nam2 ("index", lists) VALUES (?, ?)]
[parameters: ((0, [1, 2, 3, 4]), (1, [1, 3]))]

Значит, список Python не поддерживается как значение. Вопрос в том, есть ли способ поместить список pandas или Python (я все равно его оптимизирую) в базу данных? Перо также отказался работать со списками; Мне нужно будет хранить огромные сообщения на жестком диске. Спасибо.

1 Ответ

0 голосов
/ 01 марта 2020

Списки обычно не поддерживаются большинством реляционных баз данных. В частности, Python списки были бы кошмаром, потому что они могут содержать любой объект. Несколько реляционных баз данных поддерживают массивы, поскольку к ним сложно обращаться и они занимают место для хранения.

Однако вам необходимо переосмыслить способ хранения данных. Если вам нужно хранить вложенные структуры, вам следует рассмотреть возможность использования базы данных без SQL. Если у вас есть простые списки, вы можете разбить их на независимые таблицы для хранения.

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