Python: как получить массив в базу данных SQL
Я надеюсь, что вы можете помочь мне с этим: я хочу сохранить такой массив в базе данных Python Sqlite3.
test = {
'Peter': {'A': 1, 'B': 1, 'C': 1, 'E': 1},
'Jack': {'A': 1, 'B': 1, 'D': 1, 'E': 1}
}
Что было бы хорошим решением для этого?
2 ответа
Используйте стандартный API Python DB для SQLite. Ваши данные могут быть сопоставлены со строками, причем ключ каждой записи является идентификатором в таблице БД.
import sqlite3
d = {
'Peter': {'A': 1, 'B': 1, 'C': 1, 'E': 1},
'Jack': {'A': 1, 'B': 1, 'D': 1, 'E': 1}
}
con = sqlite3.connect("/tmp/d.sqlite3")
cur = con.cursor()
cur.execute("create table t (id text, a integer, b integer, c integer, d integer, e integer)")
cur.executemany("insert into t values (?, ?, ?, ?, ?, ?)",
[(k, v.get('A', None), v.get('B', None), v.get('C', None), v.get('D', None), v.get('E', None)) for k, v in d.items()])
con.commit()
cur.execute("select * from t")
cur.fetchall()
# [('Peter', 1, 1, 1, None, 1),
# ('Jack', 1, 1, None, 1, 1)]
Сериализуйте dict в JSON и сохраните полученную строку в текстовом поле.