Cách tốt nhất để lưu trữ và truy lục một dict python trong cơ sở dữ liệu là gì?Python, lưu trữ một dict trong cơ sở dữ liệu
Trả lời
Câu hỏi khá mơ hồ, phụ thuộc rất nhiều vào các trường hợp sử dụng.
Thông thường bạn sẽ chỉ serialize nó và chèn nó bất cứ nơi nào nó là cần thiết, nhưng nếu bạn cần dict mình là "cơ sở dữ liệu giống như", sau đó bạn có thể sử dụng một trong many of the available key/value stores for Python
Nếu dict trực tiếp tương ứng vào một bảng cơ sở dữ liệu, sau đó bạn nên thiết lập một bảng có lược đồ chứa hai cột - key
và value
. Sau đó, đối với mỗi phần tử của dict, chỉ cần chèn nó vào cơ sở dữ liệu, hoặc cập nhật nó nếu khóa đã sẵn sàng, v.v.
Nếu không, bạn có thể sử dụng pickle để sắp xếp hàng loạt thành chuỗi và sau đó bạn có thể lưu chuỗi vào DB. Nhưng nói chung tôi sẽ không khuyên bạn nên giải pháp này vì bạn không thể truy vấn dữ liệu được tuần tự hóa.
Nếu bạn không đặc biệt quan tâm đến việc sử dụng cơ sở dữ liệu SQL truyền thống, chẳng hạn như MySQL, bạn có thể xem xét cơ sở dữ liệu tài liệu không có cấu trúc nơi tài liệu tự động ánh xạ tới từ điển python, ví dụ MongoDB. MongoDB python bindings cho phép bạn chỉ chèn các dicts vào DB và truy vấn chúng dựa trên các giá trị trong dict. Xem ví dụ: mã bên dưới từ số tutorial:
>>> 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']}
+1. Làm thế nào mát mẻ! Cảm ơn ví dụ. – bernie
heh, vâng nó khá thú vị;). Gần đây tôi đã bắt đầu chơi xung quanh với MongoDB và nó thực sự khá tốt đẹp vì nó là mô hình tài liệu dựa trên JSON nhị phân. Kể từ khi tôi nghe giống như một thương mại ở đây, heck thậm chí còn có một serivce lưu trữ trực tuyến miễn phí (miễn phí cho 16MB): https://mongohq.com/home: p – catchmeifyoutry
"Tốt nhất" là gây tranh cãi.
Nếu bạn cần một DBMS, sqlite được xây dựng trong; vì vậy nó có thể được coi là một phương pháp dễ dàng hơn so với một số cách khác được đề cập.
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)]
- 1. Lưu trữ dữ liệu tĩnh trong một mảng hoặc trong một cơ sở dữ liệu?
- 2. Lưu trữ ASP.Net MVC Views trong cơ sở dữ liệu
- 3. Hadoop là cơ sở dữ liệu lưu trữ tài liệu
- 4. Lưu trữ IPv6 trong cơ sở dữ liệu
- 5. Lưu trữ JSON trong cơ sở dữ liệu msSQL?
- 6. Lưu trữ Chứng chỉ X509 trong cơ sở dữ liệu
- 7. Lưu trữ thông tin OpenID trong cơ sở dữ liệu
- 8. Lưu trữ Enums trong Cơ sở dữ liệu MySQL
- 9. Lưu trữ kích thước tệp trong cơ sở dữ liệu
- 10. Lưu trữ hình ảnh trong cơ sở dữ liệu MongoDB
- 11. cách lưu trữ mật khẩu trong cơ sở dữ liệu?
- 12. Tomcat: Lưu trữ phiên trong cơ sở dữ liệu
- 13. Lưu trữ thông tin EXIF trong Cơ sở dữ liệu
- 14. Lưu trữ ngày giờ UTC trong cơ sở dữ liệu
- 15. Lưu trữ UUID trong cơ sở dữ liệu HSQLDB
- 16. Xóa một cơ sở dữ liệu ravendb trong khi ravendb đang chạy lưu trữ cơ sở dữ liệu khác
- 17. Cơ sở dữ liệu để lưu trữ cục bộ
- 18. Cơ sở dữ liệu Magento IP được lưu trữ
- 19. Android - Đâu là cơ sở dữ liệu SQLite lưu trữ
- 20. nơi MySQL lưu trữ tệp cơ sở dữ liệu?
- 21. Làm thế nào để lưu trữ dữ liệu đồ thị trong cơ sở dữ liệu?
- 22. Cách lưu trữ dữ liệu với số lượng thuộc tính động trong cơ sở dữ liệu
- 23. Lưu trữ các mẫu hỗn hợp (dữ liệu phân cấp) trong cơ sở dữ liệu
- 24. Android - Lưu trữ dữ liệu nhạy cảm trong cơ sở dữ liệu sqlite
- 25. Lưu trữ dữ liệu trong Ruby on Rails mà không có cơ sở dữ liệu
- 26. Mã hóa dữ liệu để lưu trữ trong cơ sở dữ liệu
- 27. cách lưu trữ dữ liệu vào cơ sở dữ liệu trong HTML5
- 28. Cách dễ dàng để lưu trữ siêu dữ liệu về Cơ sở dữ liệu SQLite
- 29. Làm thế nào để lưu trữ an toàn mật khẩu cơ sở dữ liệu bằng Python?
- 30. lưu trữ hình ảnh trong cơ sở dữ liệu hoặc trong một tệp hệ thống?
Khác với tuần tự hóa? –