Làm thế nào để lưu một dict vào tập tin python

Để 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ở('dữ liệu. 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
giáo dục , Kỹ thuật

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 = ['Thành phố', 'Country', 'Rank']
dictDemo = [
    {'Thành phố' . 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {'Thành phố' . 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {'Thành phố' . 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {'Thành phố' . 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
    {'Thành phố' . 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]
csvFileName = "dữ liệu. csv"
thử .
    với mở( csvFileName , 'w') as f:
      người viết = csv . DictWriter( f , tên trường =csvColumns)
      nhà văn. tiêu đề ghi()
        for dữ liệu trong dictAdo.
          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 = [
    {'Thành phố' . 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {'Thành phố' . 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {'Thành phố' . 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {'Thành phố' . 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
    {'Thành phố' . 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

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

# Viết danh sách các đối tượng dict vào một tệp
với mở( tên tệp , mode='w') as f:
    json. kết xuất( dictDemo , f )

# Viết một đối tượng dict mới vào một tệp dưới dạng nối thêm và ghi đè lên toàn bộ tệp
với mở( tên tệp , 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},
  {"Thành phố" . "Sydney", "Quốc gia" . "Úc", "Xếp hạng" . 5},
  {"Thành phố" . "Dubai", "Quốc gia" . "UAE", "Xếp hạng" . 10},
  {"Thành phố" . "Mumbai", "Quốc gia" . "Ấn Độ", "Xếp hạng" . 17},
  {"Thành phố" . "Bắc Kinh", "Quốc gia" . "Trung Quốc", "Xếp hạng" . 7},
  {"Thành phố" . "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 = [
    {'Thành phố' . 'New York', 'Quốc gia' . 'Hoa Kỳ', 'Xếp hạng' . 3},
    {'Thành phố' . 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
    {'Thành phố' . 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
    {'Thành phố' . 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
    {'Thành phố' . 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7},
]

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

# Viết danh sách các đối tượng dict vào một tệp
với mở( tên tệp , 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},
  {'Thành phố' . 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
  {'Thành phố' . 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
  {'Thành phố' . 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
  {'Thành phố' . '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

Thí 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 với
chế độ nối thêm
"""

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

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

# Viết danh sách các đối tượng dict vào một tệp
với mở( tên tệp , 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},
{'Thành phố' . 'Sydney', 'Quốc gia' . 'Úc', 'Xếp hạng' . 5},
  {'Thành phố' . 'Dubai', 'Quốc gia' . 'UAE', 'Xếp hạng' . 10},
  {'Thành phố' . 'Mumbai', 'Quốc gia' . 'Ấn Độ', 'Xếp hạng' . 17},
  {'Thành phố' . 'Bắc Kinh', 'Quốc gia' . 'Trung Quốc', 'Xếp hạng' . 7}]

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

tên tệp = "tệp dưa chua. 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

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

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

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

Bạn có thể dễ dàng chuyển đổi từ điển Python thành chuỗi bằng cách sử dụng hàm str() . Hàm str() lấy một đối tượng (vì mọi thứ trong Python đều là đối tượng) làm tham số đầu vào và trả về một biến thể chuỗi của đối tượng đó. Lưu ý rằng nó không thực hiện bất kỳ thay đổi nào trong từ điển mà trả về một biến thể chuỗi.

Làm cách nào để chuyển đổi từ điển thành tệp JSON trong Python?

1) Sử dụng hàm dumps() . Mô-đun "json" giúp dễ dàng phân tích các chuỗi JSON chứa đối tượng JSON.