Dict bất biến thành dict python

Đối tượng request.form là một từ điển bất biến. Chính xác là một đối tượng ImmutableMultiDict. Bất biến có nghĩa là bạn không thể thay đổi giá trị của nó. Nó bị đóng băng

Tuy nhiên, bạn có thể muốn thay đổi các giá trị. Ví dụ: tạo slug từ tiêu đề trước khi lưu vào cơ sở dữ liệu. Trong trường hợp như vậy, thứ bạn cần là một đối tượng từ điển cũ đơn giản

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để in một bản chính tả [từ điển] đẹp mắt. Bạn sẽ học cách sử dụng thư viện pprint cũng như thư viện json để thực hiện việc này. Bạn cũng sẽ học cách in đẹp các từ điển lồng nhau trong Python. Cuối cùng, bạn sẽ học cách lưu một lệnh in đẹp trong Python vào một tệp

Từ điển là thành phần chính để làm việc với dữ liệu trong Python, bao gồm cả dữ liệu được tải từ internet. Nhiều API trả về dữ liệu ở định dạng JSON, rất giống với định dạng của từ điển Python. Từ điển cung cấp những cách cực kỳ hữu ích để bạn có thể lưu trữ và truy xuất dữ liệu. Tuy nhiên, chúng có thể hơi khó đọc. Do đó, việc có thể in từ điển của bạn ở định dạng dễ đọc hơn thường rất hữu ích. Không chần chừ thêm nữa, hãy xem bạn sẽ học được những gì

Câu trả lời nhanh. Sử dụng thư viện json

Mục lục

Từ điển Python là gì?

Từ điển Python là cấu trúc dữ liệu sử dụng các cặp key:value để giữ và truy xuất dữ liệu. Các khóa là duy nhất, trong từ điển Python và phải được tạo thành từ các loại dữ liệu không thể thay đổi [chẳng hạn như chuỗi hoặc số nguyên], trong khi các giá trị có thể được tạo thành từ bất kỳ thứ gì, kể cả từ điển bổ sung

Hãy xem một từ điển trông như thế nào trong Python

sample_dict = {
    'age': 31,
    'gender': 'male',
    'books': ['Harry Potter', 'Lord of the Rings']
}

Chúng tôi có thể truy xuất một giá trị nếu chúng tôi biết khóa của từ điển. Ví dụ: nếu chúng tôi muốn truy xuất giá trị cho age, chúng tôi chỉ cần viết. print[sample_dict.get['age']], sẽ trả về_______1_______0

Bây giờ chúng ta đã hiểu từ điển Python là gì, hãy xem cách in chúng đẹp

Cần kiểm tra xem một khóa có tồn tại trong từ điển Python không?

In đẹp một Dict bằng Python với pprint

Python đi kèm với một thư viện tích hợp có tên là pprint, viết tắt của từ pretty-print. Sử dụng thư viện này, chúng tôi có thể in ra các cấu trúc dữ liệu được định dạng độc đáo hơn, bao gồm cả từ điển

Thư viện pprint cho phép chúng tôi chỉ định một số tham số khác nhau, bao gồm các tham số sau

  1. # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    3. số khoảng trắng để thụt lề mỗi dòng, trong đó giá trị mặc định là 
    # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    4
  2. # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    5. số ký tự tối đa được phép trên một dòng, trong đó giá trị mặc định là 
    # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    6 [nghĩa là số ký tự tối đa]
  3. # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    7. số lượng cấp độ sẽ hiển thị khi sử dụng các loại dữ liệu lồng nhau, trong đó giá trị mặc định là 
    # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    6 [nghĩa là tất cả các cấp độ sâu đều được hiển thị]
  4. # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    9. được sử dụng để chỉ định luồng đầu ra và có thể được sử dụng để lưu vào tệp
  5. # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    0. Nếu được đặt thành 
    # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    1, các giá trị sẽ được in trên một dòng, ở một chiều rộng nhất định
  6. # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    2. nếu 
    # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    1, nó sẽ in các cặp khóa-giá trị theo thứ tự bảng chữ cái của các khóa. Mặc định là 
    # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    1

Hãy tải một từ điển và xem cách chúng ta có thể in nó đẹp bằng Python

# Pretty Print a Dictionary using pprint
import pprint

sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
pprint.pprint[sample_dict]

# Returns:
# {'name': 'Nik',
#  'age': 31,
#  'books': ['Harry Potter', 'Lord of the Rings'],
#  'gender': 'male'}

Trong phần tiếp theo, bạn sẽ học cách sử dụng thư viện JSON để in đẹp một lệnh Python

Bạn muốn tìm hiểu thêm về cách hiểu danh sách Python? . Thêm một người học trực quan, hãy xem hướng dẫn YouTube của tôi tại đây

In đẹp một Dict bằng Python với JSON

Như đã đề cập trước đó, từ điển Python mang rất nhiều đặc điểm tương tự với các đối tượng JSON. Do đó, chúng ta có thể sử dụng thư viện JSON để trả về một chuỗi JSON được định dạng

Được tích hợp trong thư viện json là một hàm có tên là 

# Pretty Print a Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4]

print[pretty]

# Returns:
# {
#     "name": "Nik",
#     "age": 31,
#     "gender": "male",
#     "books": [
#         "Harry Potter",
#         "Lord of the Rings"
#     ]
# }
6, dùng để kết xuất một đối tượng chuỗi. Hãy cùng xem hàm 
# Pretty Print a Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4]

print[pretty]

# Returns:
# {
#     "name": "Nik",
#     "age": 31,
#     "gender": "male",
#     "books": [
#         "Harry Potter",
#         "Lord of the Rings"
#     ]
# }
6 trông như thế nào và nó nhận các tham số nào

  1. # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    8 sắp xếp các khóa của từ điển và mặc định là 
    # Pretty Print a Dictionary using json
    import json
    
    sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
    pretty = json.dumps[sample_dict, indent=4]
    
    print[pretty]
    
    # Returns:
    # {
    #     "name": "Nik",
    #     "age": 31,
    #     "gender": "male",
    #     "books": [
    #         "Harry Potter",
    #         "Lord of the Rings"
    #     ]
    # }
    
    9
  2. # Pretty Print a Dictionary using pprint
    import pprint
    
    sample_dict = {'name': 'Nik', 'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}
    pprint.pprint[sample_dict]
    
    # Returns:
    # {'name': 'Nik',
    #  'age': 31,
    #  'books': ['Harry Potter', 'Lord of the Rings'],
    #  'gender': 'male'}
    
    3. cho phép Python biết có bao nhiêu khoảng trắng để thụt lề theo cấp độ

Hãy sử dụng cùng một từ điển như trên và in đẹp bằng thư viện json của Python

# Pretty Print a Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4]

print[pretty]

# Returns:
# {
#     "name": "Nik",
#     "age": 31,
#     "gender": "male",
#     "books": [
#         "Harry Potter",
#         "Lord of the Rings"
#     ]
# }

Chúng ta có thể thấy ở đây điều này trả về một từ điển được in rất giống nhau, với một điểm khác biệt chính. danh sách cũng được in trên các dòng riêng biệt, giúp dễ đọc hơn. Tất nhiên, đây là một cách hay hơn nhiều để in từ điển của bạn

Trong phần tiếp theo, bạn sẽ học cách in đẹp từ điển lồng nhau trong Python

Bạn muốn tìm hiểu cách in đẹp tệp JSON bằng Python?

In đẹp từ điển lồng nhau trong Python

Trong nhiều trường hợp, từ điển của bạn sẽ phức tạp. Bạn thậm chí có thể gặp các từ điển có chứa các từ điển khác. Ví dụ: bạn có thể có một từ điển chứa thông tin về những người khác nhau. Mỗi khóa của từ điển cấp cao nhất sẽ đại diện cho tên của một người và giá trị sẽ là một từ điển khác sẽ mô tả các thuộc tính chính của một người

Do sự phức tạp của các từ điển mà bạn có thể gặp phải, để hiểu rõ hơn về cấu trúc của chúng, bạn có thể muốn in chúng ra theo cách mô tả cấu trúc của chúng một cách thích hợp hơn

Sử dụng thư viện json, điều này thực sự rất dễ dàng. Nó thực sự hoạt động giống như cách in một cuốn từ điển bình thường. Hãy cùng xem

# Pretty Print a Nested Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4, sort_keys=True]

print[pretty]

# Returns:
# {
#     "Joe": {
#         "age": 40,
#         "books": [
#             "Lord of the Flies"
#         ],
#         "gender": "male"
#     },
#     "Nik": {
#         "age": 31,
#         "books": [
#             "Harry Potter",
#             "Lord of the Rings"
#         ],
#         "gender": "male"
#     }
# }

Trong phần tiếp theo, bạn sẽ học cách lưu một cuốn từ điển được in đẹp vào một tệp

Kiểm tra một số hướng dẫn Python khác trên datagy. io, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas

Lưu một từ điển được in đẹp vào một tệp

Cuối cùng, chúng ta hãy xem cách lưu một bản chính tả được in đẹp vào một tệp. Chúng ta có thể sử dụng thư viện pprint để thực hiện việc này, với sự trợ giúp của trình quản lý bối cảnh

Hãy xem làm thế nào điều này có thể được thực hiện bằng Python

# Save a pretty printed dict to a file
import pprint

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}

with open['path_to_file', 'w'] as file_name:
    pprint.pprint[sample_dict, file_name]

Chúng tôi sử dụng trình quản lý ngữ cảnh bằng cách sử dụng hàm 

# Pretty Print a Nested Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4, sort_keys=True]

print[pretty]

# Returns:
# {
#     "Joe": {
#         "age": 40,
#         "books": [
#             "Lord of the Flies"
#         ],
#         "gender": "male"
#     },
#     "Nik": {
#         "age": 31,
#         "books": [
#             "Harry Potter",
#             "Lord of the Rings"
#         ],
#         "gender": "male"
#     }
# }
4 để liên kết đến một tệp cụ thể mà chúng tôi muốn lưu từ điển của mình, sau đó sử dụng tham số 
# Pretty Print a Nested Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4, sort_keys=True]

print[pretty]

# Returns:
# {
#     "Joe": {
#         "age": 40,
#         "books": [
#             "Lord of the Flies"
#         ],
#         "gender": "male"
#     },
#     "Nik": {
#         "age": 31,
#         "books": [
#             "Harry Potter",
#             "Lord of the Rings"
#         ],
#         "gender": "male"
#     }
# }
5 để nói rằng chúng tôi muốn ghi vào tệp. Sau đó, chúng tôi chuyển từ điển và tên_tệp này vào hàm 
# Pretty Print a Nested Dictionary using json
import json

sample_dict = {'Nik':{'age': 31, 'gender': 'male', 'books': ['Harry Potter', 'Lord of the Rings']}, 'Joe': {'age': 40, 'gender': 'male', 'books':['Lord of the Flies']}}
pretty = json.dumps[sample_dict, indent=4, sort_keys=True]

print[pretty]

# Returns:
# {
#     "Joe": {
#         "age": 40,
#         "books": [
#             "Lord of the Flies"
#         ],
#         "gender": "male"
#     },
#     "Nik": {
#         "age": 31,
#         "books": [
#             "Harry Potter",
#             "Lord of the Rings"
#         ],
#         "gender": "male"
#     }
# }
6 để lưu nó vào một tệp

Bạn muốn tìm hiểu thêm về vòng lặp for Python? . Thay vào đó, bạn muốn xem một video?

Phần kết luận

Trong bài đăng này, bạn đã học cách sử dụng Python để in một bản chính tả đẹp mắt. Bạn đã học cách thực hiện việc này bằng cách sử dụng các thư viện pprint và json, đồng thời biết được sự khác biệt của hai cách tiếp cận này. Bạn cũng đã học cách in đẹp các từ điển lồng nhau trong Python cũng như cách lưu các từ điển được in đẹp vào một tệp

dict bất biến trong Python là gì?

Như thể hiện trong hình bên dưới, các khóa là bất biến [không thể thay đổi được] kiểu dữ liệu có thể là chuỗi hoặc số . Tuy nhiên, khóa không thể là kiểu dữ liệu có thể thay đổi, ví dụ: danh sách. Các khóa là duy nhất trong Từ điển và không thể trùng lặp trong Từ điển.

Chúng ta có thể biến từ điển thành bất biến trong Python không?

Các giá trị có thể là bất kỳ loại đối tượng nào, nhưng các khóa phải là bất biến. Điều này có nghĩa là khóa có thể là số nguyên, chuỗi hoặc bộ nhưng không phải là danh sách vì danh sách có thể thay đổi. Bản thân từ điển có thể thay đổi , vì vậy các mục nhập có thể được thêm, xóa và thay đổi bất cứ lúc nào.

một dict bất biến là gì?

Điều này cho thấy cấp lớp dựa trên độ phức tạp của từ. tính từ. không thể thay đổi; . máy vi tính. [trong lập trình hướng đối tượng] hoặc ghi chú một đối tượng có cấu trúc và thuộc tính cố định mà giá trị của chúng không thể thay đổi được

Từ điển cố định trong Python là gì?

frozendict là một trình bao bọc bất biến xung quanh các từ điển triển khai giao diện ánh xạ hoàn chỉnh . Nó có thể được sử dụng như một sự thay thế thả xuống cho các từ điển khi muốn có tính bất biến. Tất nhiên, đây là python và bạn vẫn có thể chọc vào phần bên trong của đối tượng nếu muốn.

Chủ Đề