Python: JSON trong Python

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
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)
» Tiếp: Các hàm toán học trong Python
« Trước: Bài 6. Đồ họa
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!