Python: JSON trong Python
Giải phóng thời gian, khai phóng năng lực
JSON là một cú pháp để lưu trữ và trao đổi dữ liệu.
JSON là văn bản, được viết bằng ký hiệu đối tượng JavaScript.
Python có một gói tích hợp có tên là json
, có thể được sử dụng để làm việc với dữ liệu JSON.
Trước tiên ta cần import gói này:
import json
Phân tích cú pháp JSON - Chuyển đổi từ JSON sang Python
Nếu bạn có một chuỗi JSON, bạn có thể phân tích cú pháp chuỗi đó bằng cách sử dụng phương thức json.loads()
. Kết quả sẽ là một từ điển như ví dụ dưới đây.
import json #JSON: x = '{ "name":"John", "age":30, "city":"New York"}' # parse x: y = json.loads(x) print(y["age"]) #in ra: 30
Chuyển đổi từ Python sang JSON
Nếu bạn có một đối tượng Python, bạn có thể chuyển đổi nó thành một chuỗi JSON bằng cách sử dụng phương thức json.dumps()
.
import json # một từ điển: x = { "name": "John", "age": 30, "city": "New York" } # chuyển sang JSON: y = json.dumps(x) print(y) #kết quả sẽ in ra một chuỗi JSON: # {"name": "John", "age": 30, "city": "New York"}
Bạn có thể chuyển đổi các đối tượng Python thuộc các loại sau thành các chuỗi JSON:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Ví dụ dưới đây chuyển đổi các đối tượng Python thành các chuỗi JSON và in các giá trị:
import json print(json.dumps({"name": "John", "age": 30})) print(json.dumps(["apple", "bananas"])) print(json.dumps(("apple", "bananas"))) print(json.dumps("hello")) print(json.dumps(42)) print(json.dumps(31.76)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None))
Kết quả:
{"name": "John", "age": 30}
["apple", "bananas"]
["apple", "bananas"]
"hello"
42
31.76
true
false
null
Khi bạn chuyển đổi từ Python sang JSON, các đối tượng Python được chuyển đổi thành JSON (JavaScript) tương đương:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Ví dụ sau sẽ chuyển đổi một đối tượng Python chứa tất cả các loại dữ liệu hợp lệ:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } print(json.dumps(x))
Kết quả:
{"name": "John", "age": 30, "married": true, "divorced": false, "children": ["Ann", "Billy"], "pets": null, "cars": [{"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1}]}
Định dạng kết quả
Ví dụ trên in ra một chuỗi JSON, nhưng nó không dễ đọc, không có dấu đầu dòng và ngắt dòng.
Phương thức json.dumps()
có các tham số để dễ đọc kết quả hơn:
+ Sử dụng tham số indent
để xác định số lượng thụt lề:
json.dumps(x, indent=4)
+ Sử dụng tham số separators
để thay đổi dấu phân cách mặc định:
json.dumps(x, indent=4, separators=(". ", " = "))
+ Sử dụng tham số sort_keys
để thực hiện việc sắp xếp kết quả:
json.dumps(x, sort_keys=True)
Giải phóng thời gian, khai phóng năng lực