{ “surname”: “Edison”, “given_name”: “Thomas”, "middle_name": "Alva", “age”: 84 }
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]
JSONPythonobjectarraystringnumbertrueTruefalseFalsenullNone
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]
{"name": "Alexander Graham Bell", "job_title": "CEO","company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False}
formatted_json = json.dumps[ pythonDict, indent = 4, separators = [“, ”, “ = “], sort_keys = True ] print[formatted_json]
{ "age"= 75, "company_name" = "Bell System", "emails" = [ { "email" = "[email protected]", "type" = "work" } ], "job_title" = "CEO", "my_neighbor" = False, "name" = "Alexander Graham Bell" }
#convert JSON into a python dictionary pythonDict2 = json.loads[unformattedJSON] #print out the value for key "job_title" print["Individual key: job_title , value: " + pythonDict2["job_title"] +"\n"] #print out all keys and values print["All keys and values: \n"] for key,value in pythonDict2.items[]: print["key:", key,",", "value:", value]
Individual key: job_title , value: Chief Scientist All keys and values: key: name , value: Alexander Graham Bell key: job_title , value: CEO key: company_name , value: Bell System key: age , value: 75 key: emails , value: [{'email': '[email protected]', 'type': 'work'}] key: my_neighbor , value: False
________số 8
namecompany_nameageAda LovelaceAlgo Prime37Thomas Alva EdisonBright Idea Technologies84
import csv import json #path to csv contactsFile = r'Contacts.csv' #Create an empty dictionary to collect values contacts = {} with open[contactsFile, encoding='utf-8'] as csvFile: csvContent = csv.DictReader[csvFile] for row in csvContent: # Use the row that starts with name as the list of keys key = rows["name"] # Assign the all of the values in the row to the appropriate key contacts[key] = row print[json.dumps[contacts, indent = 4]
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]0
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]1
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]2____13
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]4
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]5
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]6
Ký hiệu đối tượng JavaScript, viết tắt là JSON, là định dạng dựa trên văn bản tiêu chuẩn để biểu thị dữ liệu có cấu trúc. Định dạng tệp JSON tương tự như định dạng của từ điển. Một JSON đơn giản có thể trông như thế này
Bạn cũng có thể viết một đối tượng JSON với hỗn hợp các chuỗi và số như hình bên dưới
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]7Chuyển đổi JSON sang Python
Python đi kèm với một gói tích hợp có tên là json, được sử dụng để thao tác và phân tích dữ liệu JSON. Dữ liệu trong json có phần mở rộng là
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]84, phần mở rộng này cho chúng ta biết rằng tệp chứa dữ liệu ở định dạng JSON
Tạo một thư mục JSON và thêm hai tệp, cụ thể là
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]
85[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]
86
Thêm phần sau vào
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]85
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]8
Để đọc nội dung của file json, đầu tiên chúng ta sẽ import json và sử dụng lệnh
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]88 để đọc nội dung của file. Mở json_data. py và nhập gói json
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]4
Đọc tệp bằng lệnh open[] và in nội dung của dữ liệu. tập tin json
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]5
Ở đây chúng tôi đang sử dụng phương pháp
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]89 để phân tích chuỗi JSON thành chuỗi python. đầu ra sẽ là
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]72 Ghi vào tệp JSON
Đôi khi bạn muốn lưu dữ liệu JSON vào một tệp, gói JSON cho phép bạn thực hiện điều đó trong các bước đơn giản
Giả sử chúng ta có dữ liệu JSON sau đây mà bạn muốn lưu vào một tệp
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]8
Chúng tôi sẽ sử dụng lệnh open[] và thêm một đối số 'w', như hình bên dưới
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]9
Ở đây chúng tôi sử dụng lệnh open[] làm tệp chế độ ghi dưới biến new_json và sau đó sử dụng json. phương thức dump[] để ghi vào tệp.
json. dump[] nhận hai đối số i. e. , đối tượng dữ liệu, sau đó là đối tượng tệp bạn muốn lưu.
Như bạn có thể thấy ở trên, tệp
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]40 đã được tạo trong thư mục của chúng tôi và chứa dữ liệu được ghi vào đó
Flask-REST-JSONAPI là một tiện ích mở rộng cho Flask bổ sung hỗ trợ để xây dựng nhanh các API REST với tính linh hoạt cao xung quanh JSONAPI 1. 0 đặc điểm kỹ thuật. Nó được thiết kế để phù hợp với sự phức tạp của môi trường thực tế, vì vậy Flask-REST-JSONAPI giúp bạn tạo một bản tóm tắt logic cho dữ liệu của mình được gọi là “tài nguyên” và có thể giao tiếp với bất kỳ loại ORM hoặc lưu trữ dữ liệu nào thông qua khái niệm lớp dữ liệu
Chúng tôi sẽ sử dụng Flask-REST-JSONAPI để xây dựng API JSON đơn giản. API sẽ có thể đọc, thêm, cập nhật, xóa dữ liệu. Tạo một thư mục cho dự án
{"name": "Alexander Graham Bell", "job_title": "CEO","company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False}1
Tạo, kích hoạt môi trường ảo và cài đặt các phụ thuộc dự án chủ yếu là bình, Flask-SQLAlchemy và Flask-REST-JSONAPI
{"name": "Alexander Graham Bell", "job_title": "CEO","company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False}2
Tạo một tệp
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]41
{"name": "Alexander Graham Bell", "job_title": "CEO","company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False}4
trong ứng dụng. py, tạo phiên bản ứng dụng bình và định cấu hình cơ sở dữ liệu SQLite đơn giản
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]80
Xác định mô hình Nhiệm vụ
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]81
Tiếp theo, chúng tôi sẽ tạo một lớp trừu tượng hóa dữ liệu logic bằng marshmallow, điều này rất quan trọng để không làm lộ một số chi tiết nhất định về API của bạn
Marshmallow là một thư viện ORM/ODM/framework-agnostic để chuyển đổi các loại dữ liệu phức tạp, chẳng hạn như các đối tượng, sang và từ các kiểu dữ liệu Python gốc
Trước tiên hãy bắt đầu bằng cách cài đặt marshmallow
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]82
Hãy tạo lớp trừu tượng hóa dữ liệu
Tiếp theo, chúng tôi sẽ tạo trình quản lý tài nguyên
Trình quản lý tài nguyên liên kết phần trừu tượng hóa dữ liệu, lớp dữ liệu và phần mềm khác
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]42 kế thừa từ
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]43 và cấp quyền truy cập vào các phương thức GET và POST. Điều này cho phép bạn tạo một đối tượng tạo hoặc truy xuất một tập hợp các đối tượng tác vụ
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]44 kế thừa từ
import json my_dictionary = { "name": "Alexander Graham Bell", "job_title": "CEO", "company_name": "Bell System", "age": 75, "emails": [{"email": "[email protected]", "type": "work"}], "my_neighbor": False } unformatted_json = json.dumps[my_dictionary] print[unformatted_json]45. và cấp quyền truy cập vào các phương thức GET, PATCH và DELETE
Bước cuối cùng là tạo REST Endpoint
[ { “given_name”: “Katherine”, “surname”: “Johnson”, “age”: 101 }, { “given_name”: “Ada”, “surname”: “Lovelace”, “age”: 37 } ]83
ứng dụng tập tin của bạn. py bây giờ sẽ trông như thế này
Bây giờ hãy chạy máy chủ và điều hướng đến http. //127. 0. 0. 1. 5000/tác vụ, không có dữ liệu, hãy thêm một số dữ liệu bằng cách sử dụng người đưa thư
POST điểm cuối
Đảm bảo rằng bạn đặt Loại nội dung là “application/vnd. api+json” trong tiêu đề của bạn
NHẬN yêu cầu
NHẬN điểm cuối
Bạn cũng có thể xóa một tác vụ bằng cách truy vấn id của nó
DELETEKết luận
Hướng dẫn này đã trình bày cách tạo và phân tích cú pháp JSON trong bài viết này. Bạn cũng đã xây dựng một JSON API đơn giản với Python
JSON là định dạng dữ liệu ưa thích của các nhà phát triển và được sử dụng trong cấu hình dữ liệu cho các ứng dụng cũng như tạo API. Bạn cũng có thể xem hướng dẫn này về cách xây dựng API CRUD với Flask và PostgreSQL
Nếu bạn thích đọc nội dung này, hãy cân nhắc đăng ký để trở thành thành viên của Medium
Thêm nội dung bằng tiếng Anh. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Nhận quyền truy cập độc quyền để viết các cơ hội và lời khuyên trong cộng đồng của chúng tôi Discord