在数据库中存储和检索python dict的最佳方法是什么?
如果您对使用传统的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']}
"最好"是值得商榷的.
如果你需要一个DBMS,sqlite就是内置的; 所以它可能被认为是比其他一些方法更容易的方法.
import sqlite3 conn = sqlite3.connect(':memory:') c = conn.cursor() c.execute("create table kv (key text, value integer);") #d = {'a':1,'b':2} c.executemany("insert into kv values (?,?);", d.iteritems()) # c.execute("select * from kv;").fetchall() # [(u'a', 1), (u'b', 2)]