Trong hướng dẫn Python này, chúng ta sẽ xem làm thế nào chúng ta có thể lấy tất cả các khóa trong đối tượng json này và tất cả các giá trị của các khóa
được rồi, vậy hãy để tôi bắt đầu, hãy để tôi lấy một tệp python trống
đây, vậy vâng, để tôi lưu tệp này trước làm ví dụ. py
tải json
Vì nó là json nên tôi cần nhập gói này có tên là json. Điều này cho phép bạn chơi xung quanh với json. Sau đó, nó có sẵn trong tệp Python cụ thể này
import json
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đúng vậy, hãy lấy đường dẫn tệp đó và thử mở tệp đó bằng tệp open as json
with open["C:\\pythonPrograms\\example.json"] as jsonFile:
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều đó sẽ làm giải mã json. Tệp json của chúng tôi trông như thế này
{"emp_details":[
{"name": "a",
"id": "123"
},
{"name":"b",
"id":"345"
}
]
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bạn cần đặt tên tệp, vì vậy đây là tên tệp của tôi. Nó phải có dấu gạch chéo kép chứ không phải dấu gạch chéo đơn, vì vậy khi chúng tôi có thư viện json mà chúng tôi đã nhập, bạn cần tải đối tượng json. Đi nào
Nhận khóa và giá trị
Dùng hàm load file json, cái này để mình giữ thành 1 biến là data
data = json.load[jsonFile]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó, bạn có một đối tượng Python. Bây giờ bạn có thể lấy các khóa và giá trị. Mã bên dưới phụ thuộc vào tệp json của bạn trông như thế nào. Trong tệp json của chúng tôi có một tiêu đề có tên emp_details
jsonData = data["emp_details"]
keys = x.keys[]
values = x.values[]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều đó mang lại cho chúng tôi mã này
import json
with open["test.json"] as jsonFile:
data = json.load[jsonFile]
jsonData = data["emp_details"]
for x in jsonData:
keys = x.keys[]
print[keys]
values = x.values[]
print[values]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Nó sẽ xuất ra
{'name': 'a', 'id': '123'}
dict_keys[['name', 'id']]
dict_values[['a', '123']]
{'name': 'b', 'id': '345'}
dict_keys[['name', 'id']]
dict_values[['b', '345']]
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Nếu muốn, bạn có thể lặp lại các khóa và giá trị bên trong vòng lặp để thực hiện định dạng
Ở đây chúng tôi sử dụng vòng lặp for để lặp lại các khóa và giá trị. Nếu tệp json của bạn nhỏ như tệp trong ví dụ này, bạn không nhất thiết phải sử dụng vòng lặp
Làm cách nào để phân tích cú pháp JSON bằng Python. Trước tiên, chúng tôi tải tệp JSON bằng json. phương thức tải []. Kết quả là một từ điển Python. Sau đó, chúng ta có thể truy cập các trường bằng các phương thức từ điển
JSON là một định dạng trao đổi dữ liệu nhẹ
Để trích xuất thông tin từ tệp JSON hoặc phản hồi JSON, chúng tôi phải phân tích cú pháp dữ liệu
Phân tích cú pháp JSON bằng Python
Chúng tôi sẽ sử dụng JSON sau đây trong ví dụ của chúng tôi
{
"store":{
"book":[
{
"category":"reference",
"author":"Nigel Rees",
"title":"Sayings of the Century",
"price":8.95
},
{
"category":"fiction",
"author":"Evelyn Waugh",
"title":"Sword of Honour",
"price":12.99
}
],
"bicycle":{
"color":"red",
"price":19.95
}
},
"expensive":10
}
Bước đầu tiên là tải tệp JSON bằng Python
Tệp JSON hiện được lưu trữ trong biến data
Phương thức in sẽ chỉ in JSON ở trên
Ghi chú. Phương thức trên sẽ lưu trữ JSON dưới dạng từ điển python. Chúng ta có thể kiểm tra điều này bằng cách in kiểu, print[type[data]].
Hướng dẫn JSON - Tìm hiểu cách sử dụng JSON với JavaScript
Trích xuất dữ liệu cụ thể từ JSON
Bây giờ chúng ta có JSON của mình dưới dạng từ điển Python, chúng ta có thể tìm nạp một số dữ liệu nhất định bằng cách chỉ định trường, đại diện cho key
trong từ điển
Ví dụ: để lấy giá của chiếc xe đạp trong JSON ở trên, chúng tôi sẽ sử dụng
print[data['store']['bicycle']['price']]
đầu ra
19.95
Trích xuất dữ liệu từ mảng JSON
Trong ví dụ JSON ở trên, trường “sách” là một Mảng JSON
Chúng ta có thể sử dụng ký hiệu chỉ mục để lấy các mục cụ thể
Ví dụ: để lấy tên của cuốn sách thứ hai, chúng tôi sẽ sử dụng
print[data['store']['book'][1]['title']]
đầu ra
Sword of Honour
Phân tích cú pháp có điều kiện của JSON
Giả sử chúng ta muốn lấy tất cả những cuốn sách có giá nhỏ hơn hoặc bằng 10. 00
Sau đó, chúng tôi sẽ sử dụng
books = data['store']['book']
for book in books:
if book['price']