Trong hướng dẫn này, bạn sẽ học cách phân tích cú pháp, đọc và viết JSON bằng Python với sự trợ giúp của các ví dụ. Ngoài ra, bạn sẽ học cách chuyển đổi JSON thành dict và in nó ra.
JSON ( J ava S cript O bject N otation) là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn dữ liệu có cấu trúc. Việc truyền và nhận dữ liệu giữa máy chủ và ứng dụng web ở định dạng JSON là điều phổ biến.
Trong Python, JSON tồn tại dưới dạng một chuỗi. Ví dụ:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Nó cũng phổ biến để lưu trữ một đối tượng JSON trong một tệp.
Nhập mô-đun json
Để làm việc với JSON (chuỗi hoặc tệp chứa đối tượng JSON), bạn có thể sử dụng json
mô-đun của Python . Bạn cần nhập mô-đun trước khi có thể sử dụng.
import json
Phân tích cú pháp JSON bằng Python
Các json
mô-đun làm cho nó dễ dàng để phân tích chuỗi JSON và các tập tin có chứa đối tượng JSON.
Ví dụ 1: Python JSON để ra lệnh
Bạn có thể phân tích cú pháp chuỗi JSON bằng json.loads()
phương thức. Phương thức trả về một từ điển.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Ở đây, person là một chuỗi JSON và person_dict là một từ điển.
Ví dụ 2: Python đọc tệp JSON
Bạn có thể sử dụng json.load()
phương thức để đọc tệp chứa đối tượng JSON.
Giả sử, bạn có một tệp có tên person.json
chứa đối tượng JSON.
("name": "Bob", "languages": ("English", "Fench") )
Đây là cách bạn có thể phân tích cú pháp tệp này:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Ở đây, chúng ta đã sử dụng open()
hàm để đọc tệp json. Sau đó, tệp được phân tích cú pháp bằng json.load()
phương pháp cung cấp cho chúng ta một dữ liệu có tên từ điển.
Nếu bạn không biết cách đọc và ghi tệp bằng Python, chúng tôi khuyên bạn nên kiểm tra I / O tệp Python.
Chuyển đổi Python sang chuỗi JSON
Bạn có thể chuyển đổi từ điển sang chuỗi JSON bằng json.dumps()
phương pháp.
Ví dụ 3: Chuyển đổi dict thành JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Đây là bảng hiển thị các đối tượng Python và chuyển đổi tương đương của chúng sang JSON.
Python | JSON tương đương |
---|---|
dict | vật |
list , tuple | mảng |
str | chuỗi |
int , float ,int | con số |
True | thật |
False | sai |
None | vô giá trị |
Ghi JSON vào một tệp
Để ghi JSON vào một tệp bằng Python, chúng ta có thể sử dụng json.dump()
phương thức.
Ví dụ 4: Ghi JSON vào một tệp
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
Trong chương trình trên, chúng tôi đã mở một tệp có tên person.txt
ở chế độ ghi bằng cách sử dụng 'w'
. Nếu tệp chưa tồn tại, nó sẽ được tạo. Sau đó, json.dump()
chuyển đổi person_dict
thành một chuỗi JSON sẽ được lưu trong person.txt
tệp.
Khi bạn chạy chương trình, person.txt
tệp sẽ được tạo. Tệp có văn bản sau bên trong nó.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python JSON in đẹp
Để phân tích và gỡ lỗi dữ liệu JSON, chúng tôi có thể cần in dữ liệu đó ở định dạng dễ đọc hơn. Điều này có thể được thực hiện bằng cách chuyển các tham số bổ sung indent
và sort_keys
tới json.dumps()
và json.dump()
phương thức.
Ví dụ 5: JSON in đẹp trong Python
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Khi bạn chạy chương trình, đầu ra sẽ là:
("ngôn ngữ": "tiếng Anh", "tên": "Bob", "số": (2, 1.6, null))
Trong chương trình trên, chúng ta đã sử dụng 4
dấu cách để thụt lề. Và, các phím được sắp xếp theo thứ tự tăng dần.
Nhân tiện, giá trị mặc định của thụt lề là None
. Và, giá trị mặc định của sort_keys là False
.
Bài đọc được đề xuất:
- Python JSON sang CSV và ngược lại
- Python XML sang JSON và ngược lại
- Python simplejson