Đố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
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# 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]# 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ị]# 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# 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'}
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# 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# 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" # ] # }
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
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# 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" # ] # }
3. cho phép Python biết có bao nhiêu khoảng trắng để thụt lề theo cấp độ# 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'}
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ệpBạ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