Ở bài này ta sẽ tìm hiểu về JSON trong python. 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.
JSON trong Python
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.
Ví dụ: Nhập module json:
import 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 nó bằng cách sử dụng phương thức json.loads(). Kết quả sẽ là một dictionary Python .
Ví dụ: Chuyển đổi từ JSON sang Python:
import json # some JSON: x = '{ "name":"John", "age":30, "city":"New York"}' # parse x: y = json.loads(x) # the result is a Python dictionary: print(y["age"])
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 chuỗi JSON bằng cách sử dụng phương thức json.dumps().
Ví dụ: Chuyển đổi từ Python sang JSON:
import json # a Python object (dict): x = { "name": "John", "age": 30, "city": "New York" } # convert into JSON: y = json.dumps(x) # the result is a JSON string: print(y)
Bạn có thể chuyển đổi các đối tượng Python thuộc các loại sau thành chuỗi JSON:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
Ví dụ: Chuyển đổi các đối tượng Python thành 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))
Khi bạn chuyển đổi từ Python sang JSON, các đối tượng Python sẽ đượ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ụ: Chuyển đổi một đối tượng Python chứa tất cả các kiểu dữ liệu hợp pháp:
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))
Định dạng kết quả
Ví dụ trên in ra một chuỗi JSON, nhưng nó không dễ đọc lắm, không có dấu thụt lề và ngắt dòng.
Phương thức json.dumps() có các tham số để dễ đọc kết quả hơn:
Ví dụ: Sử dụng tham số indent để xác định số lượng thụt lề:
json.dumps(x, indent=4)
Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (“, “, “: “), nghĩa là sử dụng dấu phẩy và dấu cách để phân tách từng đối tượng, dấu hai chấm và dấu cách để phân tách khóa khỏi giá trị:
Ví dụ: Sử dụng tham số separators để thay đổi dấu phân cách mặc định:
json.dumps(x, indent=4, separators=(". ", " = "))
Sắp xếp kết quả
Phương thức json.dumps() có các tham số để sắp xếp các khóa trong kết quả:
Ví dụ: Sử dụng sort_keystham số để xác định xem kết quả có nên được sắp xếp hay không:
json.dumps(x, indent=4, sort_keys=True)
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 3 tháng của SmartData.
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: