-4

我希望你能帮我解决这个问题:我想在 Python Sqlite3 数据库中保存一个这样的数组。

test = {
    'Peter': {'A': 1, 'B': 1, 'C': 1, 'E': 1},
    'Jack': {'A': 1, 'B': 1, 'D': 1, 'E': 1}
}

什么是一个好的解决方案?

4

2 回答 2

3

使用 SQLite 的标准 Python DB API。您的数据可以映射到行,每个条目的键都是数据库表中的 ID。

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)]
于 2013-10-28T14:50:01.957 回答
-3

将 dict 序列化为 JSON 并将结果字符串存储在文本字段中。

于 2013-10-28T14:34:25.490 回答