Bạn có thể lưu từ điển Python vào tệp không?

Bài viết này giúp bạn hiểu ba phương pháp lưu từ điển quan trọng trong Python

nguồn. https. //www. i2tutorials. com/what-are-dictionaries-in-python/

Từ điển là gì?

Từ điển trong Python là một tập hợp các giá trị dữ liệu không có thứ tự, được sử dụng để lưu trữ các giá trị dữ liệu như bản đồ. Nó chứa các cặp 'key', 'value'

từ điển đơn giản là đại diện. {‘key1’. 'giá trị1',…. }

từ điển trống trong python là {} hoặc dict()

ví dụ, hãy lấy từ điển sau để minh họa cách lưu nó vào một tệp

a_dict = {'clk': 'click','cm': 'call me','cmb': 'call me back'}

phím. a_dict. phím()

dict_keys(['clk', 'cm', 'cmb'])

Sử dụng hàm save() của numpy

nhập numpy dưới dạng np
np. lưu(“a_dict. npy”, a_dict)

Sử dụng hàm dump() của dưa chua

nhập dưa chua
với open(“a_dict. pkl”, “wb”) như f.
dưa chua. kết xuất(a_dict,f)
f. đóng()

Sử dụng hàm dump() của json

nhập json
với open(“a_dict. json”, “wb”) dưới dạng t.
json. kết xuất(a_dict,t)
f. đóng()

Đọc các tập tin đã lưu tương ứng

đọc. tập tin npy

new_dict = np. tải ('a_dict. npy’, allow_pickle=’TRUE’)

đọc. tập tin pkl

với open(“a_dict. pkl”, “rb”) như f.
new_dict = dưa chua. tải(f)
in(new_dict)

đọc. tập tin json

với open(“a_dictionary. json”, “rb”) dưới dạng f.
new_dict = json. tải(f)
in(new_dict)

Chà, tôi tin rằng bạn đã học cách lưu từ điển vào một tệp bằng các phương pháp khác nhau này và đọc theo đó

CSV (Giá trị được phân tách bằng dấu phẩy) là định dạng tệp phổ biến nhất được nhiều nền tảng và ứng dụng hỗ trợ rộng rãi

Sử dụng mô-đun csv từ thư viện chuẩn của Python. Cách dễ nhất là mở tệp csv ở chế độ 'w' với sự trợ giúp của hàm open() và viết cặp giá trị khóa ở dạng được phân tách bằng dấu phẩy

import csv
my_dict = {'1': 'aaa', '2': 'bbb', '3': 'ccc'}
with open('test.csv', 'w') as f:
    for key in my_dict.keys():
        f.write("%s,%s\n"%(key,my_dict[key]))

Mô-đun csv chứa phương thức DictWriter yêu cầu tên của tệp csv để ghi và đối tượng danh sách chứa tên trường. Phương thức writeheader() ghi dòng đầu tiên trong tệp csv dưới dạng tên trường. Vòng lặp for tiếp theo ghi từng hàng ở dạng csv vào tệp csv

Để lưu từ điển vào CSV (Giá trị được phân tách bằng dấu phẩy), chúng tôi sử dụng mô-đun CSV. Các giá trị được phân tách bằng dấu phẩy để lưu lệnh python là phương pháp phổ biến và nổi tiếng nhất. Hầu hết các lập trình viên chỉ sử dụng phương pháp này để lưu lệnh vào một tệp. Để lưu từ điển dưới dạng tệp CSV rất dễ dàng vì chúng tôi phải chuyển dữ liệu dưới dạng chuỗi

Ví dụ 1. dict_to_csv. py

# dict_to_csv. py
nhập csv

dict_sample = . 'name': 'LinuxHint', 'city' . 'CA', 'giáo dục' . 'Kỹ thuật'}

với mở('data.csv', 'w') as f:
    cho khóa trong dict_sample. phím() .
        f. viết("%s, %s \n" %(key, dict_sample[key]))

Dòng 2. Chúng tôi nhập mô-đun python CSV

Dòng 4. Chúng tôi đã tạo một dữ liệu chính tả mẫu. Chúng tôi sẽ cố gắng lưu nó dưới dạng tệp CSV

dòng 6. Chúng tôi đang sử dụng câu lệnh 'with' ở đây để ghi tệp CSV. Câu lệnh 'with' tự động xử lý ngoại lệ trong quá trình đọc hoặc ghi tệp. Chúng tôi mở tệp dữ liệu. csv ở chế độ ghi và gán đối tượng đó cho biến f

Dòng 7, Chúng tôi đang chạy một vòng lặp for để trích xuất khóa và trong dòng tiếp theo, nó ghi khóa và key_value vào tệp CSV. Vì vậy, vòng lặp này sẽ chạy cho đến khi có dữ liệu

đầu ra. dữ liệu. csv

tên , LinuxHint
thành phố , CA
education, Engineering

Vì vậy, ở trên cho thấy tệp đầu ra sau khi ghi vào dữ liệu. csv

Bây giờ, chúng tôi hiểu cách lưu chính tả vào một tệp ở dạng CSV. Hãy thử với một ví dụ khác mà chúng tôi muốn ghi danh sách các đối tượng dict vào tệp CSV

Ví dụ_2. dict_to_csv_2. py

# dict_to_csv_2. py

nhập csv

csvColumns = . 'City', 'Country', 'Rank']
dictDemo = [
    {'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
      {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
      {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]
csvFileName . csv" = "data.csv"
thử .
      với mở( csvFileName< . , 'w') as f:
      người viết = csv . DictWriter( f , tên trường . =csvColumns)
        writer.tiêu đề ghi()
        cho< . data in dictDemo:
          nhà văn. nhà văn( dữ liệu )
ngoại trừ . IOError:
    in("Gặp lỗi")

Dòng 3 đến 12. Chúng tôi nhập mô-đun CSV python và tạo danh sách các đối tượng dict. Chúng tôi cũng đã tạo một danh sách các tên cột

Dòng 13. Chúng tôi đã gán tên tệp CSV cho một biến

dòng 15. Chúng tôi sử dụng câu lệnh 'with' và câu lệnh đã gán đối tượng trả về phương thức __enter__ cho biến f

Dòng 16 đến 19. Sau khi gán đối tượng trả về cho biến f, chúng tôi đã gọi phương thức DictWriter của mô-đun CSV và chuyển hai tham số (tên tệp (f) và tên cột). Sau đó, chúng tôi gọi một phương thức khác writeheader() sẽ ghi hàng đầu tiên của tệp CSV, thường là tên của các trường. Sau đó, chúng tôi chạy một vòng lặp for trên danh sách các đối tượng dict và ghi từng đối tượng một vào tệp CSV bằng phương thức writerow()

Phương pháp 2. Lưu chính tả vào một tệp văn bản ở định dạng JSON (chế độ nối thêm)

Chúng ta cũng có thể lưu các đối tượng dict ở dạng JSON vào một tệp. Đoạn mã dưới đây sẽ giải thích tương tự. Mã này cũng giải thích cách chúng tôi có thể thêm JSON mới vào danh sách JSON hiện có

Ví dụ. dict_to_file_asJSON. py

#dict_to_file_asJSON. py

nhập json

dictDemo = .
    {'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
      {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

tên tệp . json" = "dict.json"

# Ghi danh sách đối tượng dict vào tệp
với open . filename, mode='w') as f:
    json. kết xuất( dictDemo , f . )

# Writing a new dict object to a file as append and overwrite the whole file
with open(filename, mode='w') as f:
    dictDemo. chắp thêm({'Thành phố': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc'})
    json. kết xuất( dictDemo , f )

đầu ra. mệnh lệnh. json

[{"Thành phố" . "New York", "Quốc gia" . "Hoa Kỳ", "Xếp hạng" . 3},
  {< . "City": "Sydney", "Quốc gia" . "Úc", "Xếp hạng" . 5},
  {< . "City": "Dubai", "Quốc gia" . "UAE", "Xếp hạng" . 10},
  {< . "City": "Mumbai", "Quốc gia" . "Ấn Độ", "Xếp hạng" . 17},
  {< . "City": "Bắc Kinh", "Quốc gia" . "Trung Quốc", "Xếp hạng" . 7},
  {< . "City": "Bắc Kinh", "Quốc gia" . "Trung Quốc"}
]

Dòng 1 đến 13. Chúng tôi nhập mô-đun JSON. Sau đó, chúng tôi tạo một danh sách các đối tượng dict cho bản demo. Sau đó, chúng tôi đã gán tên của tệp JSON cho một tên tệp biến

Dòng 15 đến 17. Chúng tôi đang sử dụng câu lệnh 'with' để mở tệp JSON để ghi và sau đó chúng tôi sử dụng json. phương thức kết xuất để chuyển đổi các đối tượng dict thành JSON và sau đó ghi vào tệp

Dòng 20 đến 22. Những dòng này rất quan trọng bởi vì điều gì sẽ xảy ra? . Dữ liệu trước đó sẽ bị mất do ghi đè. Sau đó, chúng ta có thể sử dụng tên danh sách dict trước đó như chúng ta đã làm (dictDemo), sau đó chúng ta nối đối tượng mới vào đó. Và cuối cùng, chúng tôi chuyển đổi toàn bộ tệp thành JSON và ghi đè lên toàn bộ tệp

Ở đầu ra, chúng ta có thể thấy rằng một đối tượng JSON mới được thêm vào danh sách JSON hiện có

Phương pháp 3. Lưu các đối tượng từ điển vào một tệp ở dạng txt

Ta cũng có thể lưu từ điển thành dạng chuỗi bình thường vào file. Vì vậy, phương pháp dưới đây là một cách rất đơn giản để lưu các đối tượng từ điển vào tệp ở dạng văn bản. Nhưng mã này sẽ không hoạt động nếu chúng ta muốn thêm một đối tượng từ điển mới vào tệp vì nó sẽ ghi đè lên dữ liệu đã ghi trước đó. Vì vậy, về điều đó, chúng ta sẽ thấy nó trong đoạn mã tiếp theo

Ví dụ. dict_to_txt. py

#dict_to_txt. py

dictDemo = [
    { . 'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
    {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

tên tệp . txt" = "dict.txt"

# Ghi danh sách đối tượng dict vào tệp
với open . filename, mode='w') as f:
    f. viết(str( dictDemo ))

đầu ra. mệnh lệnh. txt

[{'Thành phố' . 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
  {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
  {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
  {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
  {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7}]

Dòng 1 đến 11. Chúng tôi đã tạo một danh sách các đối tượng từ điển và gán tên của tệp “dict. txt” thành một tên tệp biến

Dòng 14 đến 15. Chúng tôi đang sử dụng câu lệnh 'with' ở đây, tự động xử lý ngoại lệ. Và chúng tôi đang viết danh sách các đối tượng dict dưới dạng một chuỗi vào một tệp

Ví dụ. dict_to_txt_2. py

Chúng ta đã thấy cách lưu các đối tượng dict vào một tệp trong. biểu mẫu txt. Nhưng trong đoạn mã trên, có một vấn đề với việc thêm một đối tượng mới. Vì vậy, chúng tôi thay đổi phương thức chắp thêm từ 'w' thành 'a', điều này có thể giải quyết vấn đề của chúng tôi như được hiển thị bên dưới trong mã

#dict_to_txt_2. py

""". cvar
    Mã này sẽ lưu các đối tượng dict trong tệp bằng
    chế độ chắp thêm.
"""

dictDemo = [
    {'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
      {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
      {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

tên tệp . txt" = "dict_to_file_appendMode.txt"

# Ghi danh sách đối tượng dict vào tệp
với open . filename, mode='a') as f:
    f. viết(str( dictDemo ))

Dòng 7 đến 15. Chúng tôi đã tạo một danh sách các đối tượng từ điển và gán tên của tệp “dict_to_file_appendMode. txt” thành một tên tệp biến

Dòng 18 đến 19. Chúng tôi thay đổi chế độ = 'a' và điều này sẽ giải quyết vấn đề của chúng tôi. Đầu ra bên dưới cho thấy rằng chúng tôi đã thêm hai đối tượng dict trong cùng một tệp mà không ghi đè lên dữ liệu trước đó

đầu ra. dict_to_file_appendMode. txt

[{'Thành phố' . 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
{' . : 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
  {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
  {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
  {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7}]

  [< . {'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
  {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
  {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
  {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
  {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7}]

Phương pháp 4. Lưu đối tượng dict vào một tệp bằng phương thức pickle

Chúng ta cũng có thể lưu đối tượng dict vào một tệp bằng mô-đun dưa chua python. Mô-đun dưa chua hỗ trợ nhiều đối tượng để tuần tự hóa trong python và cũng hỗ trợ các đối tượng dict

# dict_to_file_use_pickle. py

nhập dưa chua

dictDemo = .
    {'City': 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {< . 'City': 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {< . 'City': 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {< . 'City': 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
      {< . 'City': 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

tên tệp . pkl" = "picklefile.pkl"

với mở( tên tệp , 'ab') as f:
      dưa chua . kết xuất( dictDemo , f )

Dòng 3 đến 13. Chúng tôi nhập dưa mô-đun và tạo danh sách các đối tượng dict. Chúng tôi cũng tạo một tên tệp nơi chúng tôi sẽ lưu các đối tượng dict của mình

Dòng 15 đến 16. Chúng tôi đang sử dụng câu lệnh 'with' ở đây và mở tệp với chế độ nối thêm và định dạng nhị phân. Sau đó, chúng tôi kết xuất các đối tượng dict vào tệp

Phần kết luận

Vì vậy, chúng ta đã thấy các phương pháp khác nhau để lưu một đối tượng từ điển vào một tệp. Nó phụ thuộc vào người dùng rằng họ muốn lưu đối tượng vào tệp như thế nào. Các phương pháp phổ biến nhất để lưu đối tượng dict vào tệp là JSON và CSV. Các định dạng JSON và CSV rất nổi tiếng theo quan điểm lập trình hoặc dễ xử lý trong python. Chúng tôi cũng đã thấy chế độ nối thêm lưu tệp

Có thể lưu từ điển Python dưới dạng tệp CSV không?

Chúng tôi có thể muốn xuất kết quả của từ điển dưới dạng tệp CSV. Trong phần Trả lời này, chúng ta sẽ tìm hiểu cách lưu từ điển Python dưới dạng tệp CSV. Sử dụng thư viện pandas là một trong những cách dễ dàng nhất để chuyển đổi từ điển Python thành tệp CSV .

Làm cách nào để chuyển từ điển sang tệp CSV?

Câu hỏi. Làm cách nào để chuyển đổi từ điển thành CSV bằng Python? . tệp csv. Phương thức DictWriter() cho phép bạn chèn một hàng có định dạng từ điển (phím=tên cột; giá trị=phần tử hàng) vào tệp CSV bằng DictWriter của nó. using the DictWriter() method from the csv module. The csv. DictWriter() method allows you to insert a dictionary-formatted row (keys=column names; values=row elements) into the CSV file using its DictWriter.

Làm cách nào để lưu từ điển dưới dạng tệp JSON trong Python?

Bạn có thể lưu từ điển Python vào các tệp JSON bằng cách sử dụng mô-đun tích hợp json . Chúng ta cần sử dụng json. phương pháp dump() để làm điều này. Sử dụng tham số thụt lề để prettyPrint dữ liệu JSON của bạn.

Làm cách nào để chuyển từ điển sang PDF bằng Python?

Chuyển đổi tệp văn bản thành tệp PDF trong Python . use the file. hàm open() để mở tệp văn bản ở chế độ “đọc”. Sau đó, chúng tôi duyệt qua dữ liệu trong một vòng lặp for rồi sử dụng hàm cell() để lưu trữ dữ liệu đã duyệt đó vào biểu mẫu PDF.