Ví dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu
4 phút đọc31/08/2025
Về tác giả
I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information.
@#@
Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
{"success":true,"head":"<title>Ví dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu - CyStack Tutorial</title>\n<meta name=\"description\" content=\"Khám phá ví dụ về Python Pickle với hướng dẫn chi tiết cách lưu trữ và tải dữ liệu. Tìm hiểu cách dùng Pickle trong Python hiệu quả và an toàn\"/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"/>\n<link rel=\"canonical\" href=\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"Ví dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu - CyStack Tutorial\" />\n<meta property=\"og:description\" content=\"Khám phá ví dụ về Python Pickle với hướng dẫn chi tiết cách lưu trữ và tải dữ liệu. Tìm hiểu cách dùng Pickle trong Python hiệu quả và an toàn\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/\" />\n<meta property=\"og:site_name\" content=\"CyStack Tutorial\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"Python\" />\n<meta property=\"og:updated_time\" content=\"2026-08-03T18:18:17+07:00\" />\n<meta property=\"og:image\" content=\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\" />\n<meta property=\"og:image:secure_url\" content=\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\" />\n<meta property=\"og:image:width\" content=\"1200\" />\n<meta property=\"og:image:height\" content=\"630\" />\n<meta property=\"og:image:alt\" content=\"Ví dụ Python Pickle\" />\n<meta property=\"og:image:type\" content=\"image/jpeg\" />\n<meta property=\"article:published_time\" content=\"2025-08-31T16:53:19+07:00\" />\n<meta property=\"article:modified_time\" content=\"2026-08-03T18:18:17+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"Ví dụ Python Pickle: Hướng dẫn lưu trữ & tải dữ liệu trong Python dễ hiểu - CyStack Tutorial\" />\n<meta name=\"twitter:description\" content=\"Khám phá ví dụ về Python Pickle với hướng dẫn chi tiết cách lưu trữ và tải dữ liệu. Tìm hiểu cách dùng Pickle trong Python hiệu quả và an toàn\" />\n<meta name=\"twitter:image\" content=\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Chris Pham\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"3 minutes\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https://blog.cystack.org/tutorial/#person\",\"name\":\"CyStack Tutorial\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/tutorial/#website\",\"url\":\"https://blog.cystack.org/tutorial\",\"name\":\"CyStack Tutorial\",\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\",\"url\":\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"V\\u00ed d\\u1ee5 Python Pickle\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/category/python/\",\"name\":\"Python\"}},{\"@type\":\"ListItem\",\"position\":\"3\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/\",\"name\":\"V\\u00ed d\\u1ee5 Python Pickle: H\\u01b0\\u1edbng d\\u1eabn l\\u01b0u tr\\u1eef & t\\u1ea3i d\\u1eef li\\u1ec7u trong Python d\\u1ec5 hi\\u1ec3u\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#webpage\",\"url\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/\",\"name\":\"V\\u00ed d\\u1ee5 Python Pickle: H\\u01b0\\u1edbng d\\u1eabn l\\u01b0u tr\\u1eef & t\\u1ea3i d\\u1eef li\\u1ec7u trong Python d\\u1ec5 hi\\u1ec3u - CyStack Tutorial\",\"datePublished\":\"2025-08-31T16:53:19+07:00\",\"dateModified\":\"2026-08-03T18:18:17+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\",\"url\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/7a3584c941fa360ac061b2a8f15684ced7b92daa1f09481be135a684d989e9b9?s=96&d=mm&r=g\",\"caption\":\"Chris Pham\",\"inLanguage\":\"en-US\"}},{\"@type\":\"BlogPosting\",\"headline\":\"V\\u00ed d\\u1ee5 Python Pickle: H\\u01b0\\u1edbng d\\u1eabn l\\u01b0u tr\\u1eef & t\\u1ea3i d\\u1eef li\\u1ec7u trong Python d\\u1ec5 hi\\u1ec3u - CyStack Tutorial\",\"keywords\":\"python pickle\",\"datePublished\":\"2025-08-31T16:53:19+07:00\",\"dateModified\":\"2026-08-03T18:18:17+07:00\",\"articleSection\":\"Python\",\"author\":{\"@id\":\"https://blog.cystack.org/tutorial/author/codeweaver/\",\"name\":\"Chris Pham\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"description\":\"Kh\\u00e1m ph\\u00e1 v\\u00ed d\\u1ee5 v\\u1ec1 Python Pickle v\\u1edbi h\\u01b0\\u1edbng d\\u1eabn chi ti\\u1ebft c\\u00e1ch l\\u01b0u tr\\u1eef v\\u00e0 t\\u1ea3i d\\u1eef li\\u1ec7u. T\\u00ecm hi\\u1ec3u c\\u00e1ch d\\u00f9ng Pickle trong Python hi\\u1ec7u qu\\u1ea3 v\\u00e0 an to\\u00e0n\",\"name\":\"V\\u00ed d\\u1ee5 Python Pickle: H\\u01b0\\u1edbng d\\u1eabn l\\u01b0u tr\\u1eef & t\\u1ea3i d\\u1eef li\\u1ec7u trong Python d\\u1ec5 hi\\u1ec3u - CyStack Tutorial\",\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#webpage\"},\"image\":{\"@id\":\"https://s2.cystack.net/tutorial/31164943/vi-du-ve-python-pickle.jpg\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/tutorial/vi/2025/08/31/vi-du-ve-python-pickle/#webpage\"}}]}</script>\n"}
Tiếp nối bài viết trước về Python Multiprocessing, hôm nay chúng ta sẽ khám phá Python Pickle – một module quan trọng giúp tuần tự hóa và giải tuần tự đối tượng trong Python.

Python Pickle là gì
Python Pickle được sử dụng để serialize (tuần tự hóa) và deserialize (giải tuần tự hóa) một cấu trúc đối tượng của Python. Bất kỳ đối tượng nào trong Python đều có thể được pickle để lưu trữ vào ổ đĩa.
Đầu tiên, Python Pickle sẽ tuần tự hóa đối tượng, sau đó chuyển đổi đối tượng thành một luồng ký tự (character stream). Luồng ký tự này chứa tất cả thông tin cần thiết để tái tạo lại đối tượng trong một script Python khác.
*Lưu ý: Theo tài liệu, module pickle không an toàn trước dữ liệu lỗi hoặc được tạo ra với mục đích xấu. Do đó, bạn không bao giờ được unpickle (giải tuần tự hóa) dữ liệu nhận được từ một nguồn không đáng tin cậy hoặc chưa được xác thực.
Python Pickle dump
Trong phần này, chúng ta sẽ học cách lưu trữ dữ liệu bằng Python pickle. Để làm như vậy, chúng ta phải nhập module pickle trước. Sau đó, sử dụng hàm pickle.dump() để lưu trữ dữ liệu đối tượng vào tệp. Hàm pickle.dump() nhận 3 đối số.
Đối số đầu tiên là đối tượng mà bạn muốn lưu trữ. Đối số thứ hai là đối tượng tệp mà bạn nhận được bằng cách mở tệp mong muốn ở chế độ write-binary (wb). Và đối số thứ ba là đối số key-value (cặp khóa-giá trị). Đối số này định nghĩa protocol (giao thức).
Có hai loại giao thức – pickle.HIGHEST_PROTOCOL và pickle.DEFAULT_PROTOCOL. Xem mã mẫu để biết cách dump dữ liệu bằng pickle.
import pickle
take user input to take the amount of data
number_of_data = int(input('Enter the number of data : '))
data = []
take input of the data
for i in range(number_of_data):
raw = input('Enter data '+str(i)+' : ')
data.append(raw)
open a file, where you ant to store the data
file = open('important', 'wb')
dump information to that file
pickle.dump(data, file)
close the file
file.close()
Chương trình sau sẽ yêu cầu bạn nhập một số dữ liệu. Trong trường hợp của tôi, nó giống như thế này.

Python Pickle load
Để truy xuất dữ liệu đã được pickled, các bước khá đơn giản. Bạn phải sử dụng hàm pickle.load() để làm điều đó. Đối số chính của hàm pickle.load() là đối tượng tệp mà bạn nhận được bằng cách mở tệp ở chế độ read-binary (rb). Hãy viết mã để truy xuất dữ liệu chúng ta đã lưu bằng mã pickle dump. Xem mã sau để hiểu rõ.
import pickle
open a file, where you stored the pickled data
file = open('important', 'rb')
dump information to that file
data = pickle.load(file)
close the file
file.close()
print('Showing the pickled data:')
cnt = 0
for item in data:
print('The data ', cnt, ' is : ', item)
cnt += 1
Kết quả đầu ra sẽ như sau:
Showing the pickled data:
The data 0 is : 123
The data 1 is : abc
The data 2 is : !@#$
Ví dụ về Python Pickle
Tôi đã làm một video ngắn cho thấy việc thực thi các chương trình ví dụ về Python pickle – đầu tiên là lưu dữ liệu vào tệp và sau đó tải và in nó ra.

Như bạn có thể thấy, tệp được tạo bởi python pickle dump là một tệp nhị phân và hiển thị các ký tự rác trong trình soạn thảo văn bản.
Các lưu ý quan trọng về Python Pickle
Một vài điểm quan trọng về module python pickle là:
- Giao thức pickle dành riêng cho Python – nó không đảm bảo tương thích đa ngôn ngữ. Điều này có nghĩa là bạn rất có thể không thể chuyển thông tin để làm cho nó hữu ích trong các ngôn ngữ lập trình khác.
- Cũng không có gì đảm bảo về khả năng tương thích giữa các phiên bản Python khác nhau vì không phải mọi cấu trúc dữ liệu của Python đều có thể được tuần tự hóa bởi module.
- Phiên bản mới nhất của giao thức pickle được sử dụng theo mặc định trừ khi bạn thay đổi thủ công.
- Cuối cùng nhưng không kém phần quan trọng, theo tài liệu, module
pickle không an toàn trước dữ liệu sai hoặc được tạo ra với mục đích xấu.
Vậy đó là tất cả về ví dụ python pickle. Hy vọng rằng bạn hiểu rõ. Mọi thắc mắc thêm xin vui lòng sử dụng phần bình luận. 🙂 Tham khảo: Official Documentation