Python,将dict存储在数据库中

ens*_*are 11 python string dictionary

在数据库中存储和检索python dict的最佳方法是什么?

cat*_*try 16

如果您对使用传统的SQL数据库(如MySQL)不感兴趣,可以查看非结构化文档数据库,其中文档自然映射到python词典,例如MongoDB.MongoDB python绑定允许您只在数据库中插入dicts,并根据dict中的值查询它们.请参阅教程中的以下代码:

>>> from pymongo import Connection
>>> connection = Connection()
>>> db = connection['test-database']
>>> import datetime
>>> post = {"author": "Mike",
...         "text": "My first blog post!",
...         "tags": ["mongodb", "python", "pymongo"],
...         "date": datetime.datetime.utcnow()}
>>> posts = db.posts
>>> posts.insert(post)
ObjectId('...')
>>> posts.find_one({"author": "Mike"})
{u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
Run Code Online (Sandbox Code Playgroud)


ber*_*nie 6

"最好"是值得商榷的.
如果你需要一个DBMS,sqlite就是内置的; 所以它可能被认为是比其他一些方法更容易的方法.

import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute("create table kv (key text, value integer);")
# <sqlite3.Cursor object at 0x00C62CE0>
d = {'a':1,'b':2}
c.executemany("insert into kv values (?,?);", d.iteritems())
# <sqlite3.Cursor object at 0x00C62CE0>
c.execute("select * from kv;").fetchall()
# [(u'a', 1), (u'b', 2)]
Run Code Online (Sandbox Code Playgroud)


Dan*_*olo 4

相当模糊的问题,很大程度上取决于用例。

通常,您只需序列化它并将其插入到需要的地方,但如果您需要字典本身“类似于数据库”,那么您可以使用Python 的许多可用键/值存储之一