Hướng dẫn how to store large dictionary python - cách lưu trữ python từ điển lớn

Sử dụng tùy chọn Giao thức = 2 của CPickle. Giao thức mặc định [0] chậm hơn nhiều và tạo ra các tệp lớn hơn nhiều trên đĩa.

Nếu bạn chỉ muốn làm việc với một từ điển lớn hơn bộ nhớ có thể giữ, mô-đun kệ là một giải pháp nhanh chóng và bẩn thỉu. Nó hoạt động giống như một dict trong bộ nhớ, nhưng lưu trữ trên đĩa chứ không phải trong bộ nhớ. Kệ dựa trên cpickle, vì vậy hãy chắc chắn đặt giao thức của bạn thành bất cứ thứ gì khác ngoài 0.

Những lợi thế của cơ sở dữ liệu như SQLite so với CPickle sẽ phụ thuộc vào trường hợp sử dụng của bạn. Bạn sẽ viết dữ liệu bao lâu một lần? Bạn mong đợi bao nhiêu lần để đọc từng mốc mà bạn viết? Bạn có bao giờ muốn thực hiện tìm kiếm dữ liệu bạn viết hoặc tải nó từng mảnh một?

Nếu bạn đang thực hiện viết, đọc-nhiều và tải một mảnh cùng một lúc, bằng mọi cách, hãy sử dụng cơ sở dữ liệu. Nếu bạn đang viết một lần, hãy đọc một lần, cpickle [với bất kỳ giao thức nào khác ngoài giao thức mặc định = 0] sẽ khó đánh bại. Nếu bạn chỉ muốn một dict lớn, dai dẳng, hãy sử dụng kệ.

Cách làm Python lưu từ điển vào một tệp. Đây là những chương trình nhỏ cho phép bạn tạo một từ điển và sau đó, khi chạy chương trình, nó sẽ tạo một tệp chứa dữ liệu trong từ điển gốc.

Đưa ra một từ điển như:dictionary such as:


dict = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'}

Chúng ta có thể lưu nó vào một trong những định dạng sau:

  • Tệp giá trị bị phân tách bằng dấu phẩy [.csv]
  • Tệp JSON [.JSON]
  • Tệp văn bản [.txt]
  • Tệp Pickle [.pkl]

Bạn cũng có thể viết vào cơ sở dữ liệu SQLite.

Khóa học liên quan:

  • Khóa học về sự cố Python: Lập trình Master Python

Lưu từ điển dưới dạng tệp CSV

Mô-đun CSV cho phép các chương trình Python ghi và đọc từ các tệp CSV [giá trị được phân tách bằng dấu phẩy].

CSV là một định dạng phổ biến được sử dụng để trao đổi dữ liệu giữa các ứng dụng. Mô -đun cung cấp các lớp để thể hiện các bản ghi và trường CSV và cho phép các đầu ra được định dạng dưới dạng tệp CSV.

Trong định dạng này, mọi giá trị đều được phân tách giữa một dấu phẩy, ví dụ như thế này:

Python,py,programming,
Bitmap,bmp,picture,
Sound,mp3,audio,

Bạn có thể viết nó vào một tệp với mô -đun CSV.


import csv


dict = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'}


w = csv.writer[open["output.csv", "w"]]


for key, val in dict.items[]:


w.writerow[[key, val]]


Tệp từ điển [CSV] có thể được mở trong Google Docs hoặc Excel

Lưu từ điển vào tệp JSON

Ngày nay, một tệp JSON đã ngày càng trở nên phổ biến hơn để chuyển dữ liệu trên thế giới. JSON [Ký hiệu đối tượng JavaScript] là một định dạng liên kết dữ liệu nhẹ.

JSON rất dễ dàng cho con người đọc và viết. Nó là dễ dàng cho máy móc để phân tích và tạo ra.

JSON là một định dạng văn bản hoàn toàn độc lập với ngôn ngữ nhưng sử dụng các quy ước quen thuộc với các lập trình viên của c-family của các ngôn ngữ, bao gồm C, C ++, C#, Java, JavaScript, Perl, Python và nhiều người khác.

JSON ban đầu có nguồn gốc từ ngôn ngữ kịch bản JavaScript, nhưng nó không giới hạn ở bất kỳ ngôn ngữ lập trình nào.

Nếu bạn muốn lưu từ điển vào tệp JSON



import json


dict = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'}


json = json.dumps[dict]


f = open["dict.json","w"]


f.write[json]


f.close[]

Lưu từ điển vào tệp văn bản [RAW, .TXT]

Chương trình dưới đây viết một từ điển vào một chuỗi văn bản. Nó sử dụng lệnh gọi str [] để chuyển đổi từ điển thành chuỗi văn bản. Mặc dù dễ dàng viết như một chuỗi văn bản, định dạng này làm cho việc đọc tệp khó khăn hơn.

Bạn có thể lưu từ điển của mình vào tệp văn bản bằng mã bên dưới:


dict = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'}


f = open["dict.txt","w"]


f.write[ str[dict] ]


f.close[]

Lưu từ điển vào tệp Pickle [.pkl]

Mô -đun Pickle có thể được sử dụng để lưu từ điển [hoặc các đối tượng khác] vào một tệp. Các mô -đun có thể tuần tự hóa và giảm dần các đối tượng Python.

Trong Python, Pickle là một mô-đun tích hợp thực hiện tuần tự hóa đối tượng. Nó vừa là đa nền tảng và ngôn ngữ chéo, có nghĩa là nó có thể lưu và tải các đối tượng giữa các chương trình Python chạy trên các hệ điều hành khác nhau, cũng như giữa Python chạy trên các nền tảng khác nhau.

Mô -đun Pickle được viết hoàn toàn bằng Python và có sẵn trong các triển khai CPython, chẳng hạn như Jython hoặc Ironpython. Để cho phép tải dưa chua trong các mô -đun Python khác, Pickle hỗ trợ được thực thi từ dòng lệnh.

Chương trình dưới đây viết nó vào một tập tin dưa chua.



import pickle


dict = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'}


f = open["file.pkl","wb"]


pickle.dump[dict,f]


f.close[]

Khóa học liên quan: Khóa học về sự cố Python: Lập trình Master Python Python Crash Course: Master Python Programming

Làm cách nào để lưu trữ một từ điển lớn trong Python?

Nếu bạn chỉ muốn làm việc với một từ điển lớn hơn bộ nhớ có thể giữ, mô-đun kệ là một giải pháp nhanh chóng và bẩn thỉu.Nó hoạt động giống như một dict trong bộ nhớ, nhưng lưu trữ trên đĩa chứ không phải trong bộ nhớ.Kệ dựa trên cpickle, vì vậy hãy chắc chắn đặt giao thức của bạn thành bất cứ thứ gì khác ngoài 0.the shelve module is a good quick-and-dirty solution. It acts like an in-memory dict, but stores itself on disk rather than in memory. shelve is based on cPickle, so be sure to set your protocol to anything other than 0.

Có giới hạn kích thước từ điển trong Python không?

Nó sẽ không hiển thị đầu ra vì máy tính hết bộ nhớ trước khi đạt 2^27.Vì vậy, không có giới hạn kích thước trong từ điển.there is no size limitation in the dictionary.

Làm thế nào để bạn lưu trữ một từ điển trong Python?

Cách cơ bản nhất để lưu từ điển trong Python sẽ là lưu trữ chúng dưới dạng các chuỗi trong các tệp văn bản ...
Mở một tệp ở chế độ viết/nối thêm chế độ ..
Chuyển đổi từ điển thành một chuỗi ..
Nhập chuỗi được chuyển đổi vào tệp bằng chức năng ghi ..

Tôi có thể lưu trữ bao nhiêu mặt hàng trong một từ điển trong Python?

Vì vậy, câu trả lời cho câu hỏi của bạn là: Từ điển Python có thể chứa nhiều như môi trường của bạn cho phép.Lưu câu trả lời này.as much as your environment allows it to. Save this answer.

Bài Viết Liên Quan

Chủ Đề