JSON là từ viết tắt của Ký hiệu đối tượng JavaScript. Mặc dù tên của nó, JSON là một định dạng ngôn ngữ bất khả tri được sử dụng phổ biến nhất để truyền dữ liệu giữa các hệ thống và đôi khi lưu trữ dữ liệu. Các chương trình được viết bằng Python, cũng như nhiều ngôn ngữ lập trình khác, có thể nhập dữ liệu có định dạng JSON và có thể tuần tự hóa dữ liệu trong bộ nhớ thành định dạng JSON. Python hỗ trợ JSON thông qua gói tích hợp có tên là json. Để sử dụng tính năng này, hãy nhập gói json vào tập lệnh hoặc mô-đun Python mà bạn muốn tuần tự hóa hoặc giải tuần tự hóa dữ liệu của mình. JSON sử dụng các cặp giá trị khóa được phân tách bằng dấu phẩy có trong dấu ngoặc kép và được phân tách bằng dấu hai chấm. Phần thân của tệp JSON có thể được phân định bằng dấu ngoặc nhọn { } hoặc dấu ngoặc vuông [] [còn được gọi là "dấu ngoặc vuông" ở một số ngôn ngữ]. Định dạng JSON có vẻ giống với từ điển trong Python, nhưng các chi tiết cụ thể của định dạng JSON có sự khác biệt đáng kể, vì vậy hãy cẩn thận khi làm việc với cả hai định dạng
Ghi chú. Để biết thêm thông tin, hãy tham khảo Đọc, Viết và Phân tích cú pháp JSON bằng Python
Json. bãi []
json. hàm dumps[] sẽ chuyển đổi một tập hợp con các đối tượng Python thành một chuỗi json. Không phải tất cả các đối tượng đều có thể chuyển đổi và bạn có thể cần tạo một từ điển dữ liệu mà bạn muốn hiển thị trước khi tuần tự hóa thành JSON
cú pháp.
json. bãi chứa [obj, *, bỏ qua phím=Sai, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, thụt lề=Không, dấu phân cách=Không, mặc định=Không, sort_keys=False, **kw]
Thông số.
đối tượng. Tuần tự hóa obj dưới dạng luồng được định dạng JSON
phím bỏ qua. Nếu phím bỏ qua là True [mặc định. Sai], thì các phím dict không thuộc loại cơ bản [str, int, float, bool, None] sẽ bị bỏ qua thay vì tăng TypeError.
ensure_ascii. Nếu ensure_ascii là True [mặc định], đầu ra được đảm bảo có tất cả các ký tự không phải ASCII được thoát. Nếu ensure_ascii là Sai, các ký tự này sẽ được xuất nguyên trạng.
check_circular. Nếu check_circular là Sai [mặc định. Đúng], thì việc kiểm tra tham chiếu vòng cho các loại vùng chứa sẽ bị bỏ qua và tham chiếu vòng sẽ dẫn đến Lỗi tràn [hoặc tệ hơn].
allow_nan. Nếu allow_nan là Sai [mặc định. True], thì nó sẽ là ValueError để tuần tự hóa các giá trị float ngoài phạm vi [nan, inf, -inf] tuân thủ nghiêm ngặt đặc tả JSON. Nếu allow_nan là True, JavaScript tương đương của chúng [NaN, Infinity, -Infinity] sẽ được sử dụng.
thụt vào. Nếu thụt lề là một số nguyên hoặc chuỗi không âm, thì các phần tử mảng JSON và các thành viên đối tượng sẽ được in đẹp với mức thụt lề đó. Mức thụt lề là 0, âm hoặc “” sẽ chỉ chèn các dòng mới. Không [mặc định] chọn biểu diễn nhỏ gọn nhất. Sử dụng một số nguyên dương thụt lề nhiều khoảng trắng trên mỗi cấp. Nếu thụt lề là một chuỗi [chẳng hạn như “\t”], thì chuỗi đó được dùng để thụt lề mỗi cấp.
dải phân cách. Nếu được chỉ định, dấu phân cách phải là một bộ [item_separator, key_separator]. Giá trị mặc định là [‘, ‘, ‘. ‘] nếu thụt lề là Không có và [‘, ‘, ‘. '] nếu không thì. Để có được biểu diễn JSON nhỏ gọn nhất, bạn nên chỉ định [‘, ‘, ‘. ’] để loại bỏ khoảng trắng.
mặc định. Nếu được chỉ định, mặc định phải là một hàm được gọi cho các đối tượng không thể được tuần tự hóa. Nó sẽ trả về một phiên bản có thể mã hóa JSON của đối tượng hoặc tăng TypeError. Nếu không được chỉ định, TypeError được nâng lên.
sort_keys. Nếu sort_keys là True [mặc định. Sai], thì đầu ra của từ điển sẽ được sắp xếp theo khóa
Ví dụ 1. Chuyển từ điển Python sang json. hàm dumps[] sẽ trả về một chuỗi.
Python3
import
json
# Creating a dictionary
Dictionary
=
{
177_______07
Equivalent json string of dictionary: { "2" = "to". "3" = "Geeks". "4" = "for". "5" = "Geeks". "6" = NaN }0
Equivalent json string of dictionary: { "2" = "to". "3" = "Geeks". "4" = "for". "5" = "Geeks". "6" = NaN }1
Equivalent json string of dictionary: { "2" = "to". "3" = "Geeks". "4" = "for". "5" = "Geeks". "6" = NaN }2
import
11Equivalent json string of dictionary: { "2" = "to". "3" = "Geeks". "4" = "for". "5" = "Geeks". "6" = NaN }0_______0_______5
Equivalent json string of dictionary: { "2" = "to". "3" = "Geeks". "4" = "for". "5" = "Geeks". "6" = NaN }2
Mặc dù không cần thiết phải truyền đối số trong hàm print[], nhưng nó yêu cầu một dấu ngoặc đơn trống ở cuối để yêu cầu python thực thi hàm thay vì gọi nó bằng tên. Bây giờ, hãy khám phá các đối số tùy chọn có thể được sử dụng với hàm print[]
Chuỗi ký tự
Chuỗi ký tự trong câu lệnh in của python chủ yếu được sử dụng để định dạng hoặc thiết kế cách một chuỗi cụ thể xuất hiện khi được in bằng hàm print[]
- \N. Chuỗi ký tự này được sử dụng để thêm một dòng trống mới trong khi in một câu lệnh
- “”. Một trích dẫn trống [“”] được sử dụng để in một dòng trống
Ví dụ
Python3
print
GeeksforGeeks is best for DSA Content.0_______6_______1
GeeksforGeeks is best for DSA Content.2
đầu ra
GeeksforGeeks is best for DSA Content.
kết thúc = ” ” tuyên bố
Từ khóa end được sử dụng để chỉ định nội dung sẽ được in khi kết thúc thực thi hàm print[]. Theo mặc định, nó được đặt thành “\n”, dẫn đến thay đổi dòng sau khi thực thi câu lệnh print[]
Ví dụ. Python print[] không có dòng mới
Python3
GeeksforGeeks is best for DSA Content.3
GeeksforGeeks is best for DSA Content.4
print
GeeksforGeeks is best for DSA Content.0_______6_______7
GeeksforGeeks is best for DSA Content.2
GeeksforGeeks is best for DSA Content.9
print
GeeksforGeeks is best for DSA Content.0_______6_______7
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG3
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG5
GeeksforGeeks is best for DSA Content.2
print
GeeksforGeeks is best for DSA Content.0_______18_______9
GeeksforGeeks is best for DSA Content.2
đầu ra
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG
đối số tuôn ra
I/O trong python thường được đệm, nghĩa là chúng được sử dụng theo khối. Đây là lúc chức năng tuôn ra xuất hiện vì nó giúp người dùng quyết định xem họ có cần đệm nội dung bằng văn bản hay không. Theo mặc định, nó được đặt thành false. Nếu nó được đặt thành true, đầu ra sẽ được viết dưới dạng một chuỗi ký tự nối tiếp nhau. Quá trình này diễn ra chậm đơn giản vì viết từng đoạn dễ hơn là viết từng ký tự một. Để hiểu trường hợp sử dụng đối số tuôn ra trong hàm print[], hãy lấy một ví dụ
Ví dụ
Hãy tưởng tượng bạn đang xây dựng đồng hồ đếm ngược, đồng hồ này sẽ thêm thời gian còn lại vào cùng một dòng mỗi giây. Nó sẽ trông giống như dưới đây
3>>>2>>>1>>>Start
Mã ban đầu cho điều này sẽ trông giống như bên dưới như sau.
Python3
3>>>2>>>1>>>Start1
3>>>2>>>1>>>Start2
3>>>2>>>1>>>Start3_______18_______4
3>>>2>>>1>>>Start5
3>>>2>>>1>>>Start6
3>>>2>>>1>>>Start7
3>>>2>>>1>>>Start8
3>>>2>>>1>>>Start9
GeeksforGeeks is best for DSA Content.0
12-12-20221
12-12-20222
12-12-20223
12-12-20224
12-12-20225
12-12-20226_______37_______7
12-12-20228
12-12-20229
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument0
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______185__________
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument3
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4_______46_______5
GeeksforGeeks is best for DSA Content.2
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______46_______8
12-12-20224
GeeksforGeeks is best for DSA Content.2
12-12-20226_______57_______2
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument0
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______185__________
GeeksforGeeks is best for DSA Content.0
'Hello Geeks!!\n'7_______6_______2
Vì vậy, đoạn mã trên thêm văn bản mà không có dòng mới ở cuối và sau đó ngủ trong một giây sau mỗi lần thêm văn bản. Khi kết thúc đếm ngược, nó in Bắt đầu và kết thúc dòng. Nếu bạn chạy mã như hiện tại, nó sẽ đợi trong 3 giây và đột ngột in toàn bộ văn bản cùng một lúc. Điều này gây lãng phí 3 giây do bộ đệm của đoạn văn bản như hình bên dưới
Mặc dù bộ đệm phục vụ một mục đích, nhưng nó có thể dẫn đến các hiệu ứng không mong muốn như được hiển thị ở trên. Để giải quyết vấn đề tương tự, đối số tuôn ra được sử dụng với hàm print[]. Bây giờ, đặt đối số flush là true và xem lại kết quả
Python3
3>>>2>>>1>>>Start1
3>>>2>>>1>>>Start2
3>>>2>>>1>>>Start3_______18_______4
3>>>2>>>1>>>Start5
3>>>2>>>1>>>Start6
3>>>2>>>1>>>Start7
3>>>2>>>1>>>Start8
3>>>2>>>1>>>Start9
GeeksforGeeks is best for DSA Content.0
12-12-20221
12-12-20222
12-12-20223
12-12-20224
12-12-20225
12-12-20226_______37_______7
12-12-20228
12-12-20229
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument0
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______185__________
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument3
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4_______46_______5
print
4GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
print
6GeeksforGeeks is best for DSA Content.2
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______46_______8
12-12-20224
GeeksforGeeks is best for DSA Content.2
12-12-20226_______57_______2
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument0
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument1_______185__________
GeeksforGeeks is best for DSA Content.0
'Hello Geeks!!\n'7_______6_______2
đầu ra
https. //phương tiện truyền thông. chuyên viên máy tính. org/wp-content/uploads/20201222163647/Untitled26---Jupyter-Notebook---Google-Chrome-2020-12-22-16-33-02. mp4
dấu phân cách
Hàm print[] có thể chấp nhận bất kỳ số lượng đối số vị trí nào. Để tách các đối số vị trí này, đối số từ khóa “sep” được sử dụng
Ghi chú. Vì sep , end , flush , file là các đối số từ khóa nên vị trí của chúng không thay đổi kết quả của mã.
Ví dụ
Python3
GeeksforGeeks is best for DSA Content.10
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.12
GeeksforGeeks is best for DSA Content.13_______18_______4
GeeksforGeeks is best for DSA Content.12
GeeksforGeeks is best for DSA Content.16
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.18
print
GeeksforGeeks is best for DSA Content.20_______18_______4
GeeksforGeeks is best for DSA Content.22_______6_______2
đầu ra
12-12-2022
Ví dụ
Đối số vị trí không thể xuất hiện sau đối số từ khóa. Trong ví dụ dưới đây 10, 20 và 30 là đối số vị trí trong đó as sep=’ – ‘ là đối số từ khóa
Python3
print
___
GeeksforGeeks is best for DSA Content.0_______6_______26
GeeksforGeeks is best for DSA Content.27
GeeksforGeeks is best for DSA Content.28
GeeksforGeeks is best for DSA Content.29
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.31
GeeksforGeeks is best for DSA Content.27
GeeksforGeeks is best for DSA Content.33
GeeksforGeeks is best for DSA Content.2
đầu ra
File "0b97e8c5-bacf-4e89-9ea3-c5510b916cdb.py", line 1 print[10, 20, sep=' - ', 30] ^ SyntaxError: positional argument follows keyword argument
đối số tập tin
Trái với suy nghĩ của nhiều người, hàm print[] không chuyển đổi tin nhắn thành văn bản trên màn hình. Chúng được thực hiện bởi các lớp mã cấp thấp hơn, có thể đọc dữ liệu [tin nhắn] theo byte. Hàm print[] là một giao diện trên các lớp này, ủy quyền việc in thực tế cho một đối tượng giống như luồng hoặc tệp. Theo mặc định, chức năng print[] được liên kết với sys. thiết bị xuất chuẩn thông qua đối số tệp.
Ví dụ. In Python[] vào tệp
Python3
3>>>2>>>1>>>Start1
GeeksforGeeks is best for DSA Content.36
GeeksforGeeks is best for DSA Content.37
GeeksforGeeks is best for DSA Content.38
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.40
GeeksforGeeks is best for DSA Content.41
print
GeeksforGeeks is best for DSA Content.0_______6_______44
GeeksforGeeks is best for DSA Content.27_______6_______46
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.48
GeeksforGeeks is best for DSA Content.49
GeeksforGeeks is best for DSA Content.50
đầu ra
'Hello Geeks!!\n'
Ví dụ. với chức năng print[] để ghi nội dung trực tiếp vào tệp văn bản
Python3
print
GeeksforGeeks is best for DSA Content.0_______6_______53_______6_______27_______6_______46
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.57
GeeksforGeeks is best for DSA Content.0
GeeksforGeeks is best for DSA Content.59
GeeksforGeeks is best for DSA Content.27
GeeksforGeeks is best for DSA Content.61
GeeksforGeeks is best for DSA Content.62
đầu ra
% nano Testfile.txt ----------------------------------------------------------------------------------------------- UW PICO 5.09 File: Testfile.txt Welcome to GeeksforGeeks Python world.!! ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
Ví dụ. Sử dụng hàm print[] trong Python
Python3
GeeksforGeeks is best for DSA Content.63
GeeksforGeeks is best for DSA Content.64
GeeksforGeeks is best for DSA Content.65
GeeksforGeeks is best for DSA Content.66
print
GeeksforGeeks is best for DSA Content.0_______6_______69
GeeksforGeeks is best for DSA Content.2
GeeksforGeeks is best for DSA Content.71
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.73
GeeksforGeeks is best for DSA Content.74
print
GeeksforGeeks is best for DSA Content.0_______6_______77
GeeksforGeeks is best for DSA Content.78
GeeksforGeeks is best for DSA Content.79
print
GeeksforGeeks is best for DSA Content.0_______6_______82
GeeksforGeeks is best for DSA Content.27
GeeksforGeeks is best for DSA Content.84
GeeksforGeeks is best for DSA Content.27
GeeksforGeeks is best for DSA Content.82
GeeksforGeeks is best for DSA Content.29
GeeksForGeeks is the best platform for DSA content GeeksForGeeks is the best platform for DSA content**Welcome to GFG4
GeeksforGeeks is best for DSA Content.89