Làm cách nào để lấy giá trị khóa trong JSON Python?
Định dạng JSON ban đầu được lấy cảm hứng từ cú pháp của JavaScript (ngôn ngữ lập trình được sử dụng để phát triển web). Nhưng kể từ đó, nó đã trở thành một định dạng dữ liệu độc lập với ngôn ngữ và hầu hết các ngôn ngữ lập trình mà chúng ta sử dụng ngày nay đều có thể tạo và đọc JSON Show
Tầm quan trọng và các trường hợp sử dụng của JSONJSON về cơ bản là một định dạng được sử dụng để lưu trữ hoặc biểu diễn dữ liệu. Các trường hợp sử dụng phổ biến của nó bao gồm các tệp cấu hình và phát triển web Hãy xem tại sao
🔸 Cấu trúc và định dạng JSONBây giờ bạn đã biết định dạng JSON được sử dụng để làm gì, hãy xem cấu trúc cơ bản của nó với một ví dụ biểu thị dữ liệu của một đơn đặt hàng bánh pizza Mẫu. tập tin jsonĐây là những đặc điểm chính của định dạng JSON
💡 Mẹo. Các giá trị yêu cầu dấu ngoặc kép phải được bao quanh bởi dấu ngoặc kép
💡 Mẹo. Chúng tôi thường định dạng JSON với các mức thụt đầu dòng khác nhau để giúp dữ liệu dễ đọc hơn. Trong bài viết này, bạn sẽ học cách thêm thụt lề tự động bằng Python Các kiểu dữ liệu JSON. Khóa và Giá trịCác tệp JSON có các quy tắc cụ thể xác định loại dữ liệu nào hợp lệ cho các khóa và giá trị
Theo Các khóa trong cặp khóa/giá trị của JSON luôn thuộc loại. Khi một từ điển được chuyển đổi thành JSON, tất cả các khóa của từ điển sẽ bị ép thành chuỗi Hướng dẫn mẫuTheo Hướng dẫn về kiểu JSON của Google
🔹 JSON so với. Từ điển PythonThoạt nhìn, JSON và Từ điển có thể trông rất giống nhau (trực quan), nhưng chúng hoàn toàn khác nhau. Hãy xem cách chúng được "kết nối" và cách chúng bổ sung cho nhau để biến Python thành một công cụ mạnh mẽ để làm việc với các tệp JSON JSON là định dạng tệp được sử dụng để biểu diễn và lưu trữ dữ liệu trong khi Từ điển Python là cấu trúc dữ liệu thực tế (đối tượng) được lưu trong bộ nhớ trong khi chương trình Python chạy Cách từ điển JSON và Python hoạt động cùng nhauKhi chúng tôi làm việc với các tệp JSON trong Python, chúng tôi không thể đọc chúng và sử dụng trực tiếp dữ liệu trong chương trình của mình. Điều này là do toàn bộ tệp sẽ được biểu diễn dưới dạng một chuỗi và chúng tôi sẽ không thể truy cập từng cặp khóa-giá trị Trừ khi Chúng tôi sử dụng các cặp khóa-giá trị của tệp JSON để tạo từ điển Python mà chúng tôi có thể sử dụng trong chương trình của mình để đọc dữ liệu, sử dụng và sửa đổi dữ liệu đó (nếu cần) Đây là kết nối chính giữa JSON và Từ điển Python. JSON là biểu diễn chuỗi của dữ liệu và từ điển là cấu trúc dữ liệu thực tế trong bộ nhớ được tạo khi chương trình chạy Tuyệt. Bây giờ bạn đã biết thêm về JSON, hãy bắt đầu đi sâu vào các khía cạnh thực tế về cách bạn có thể làm việc với JSON trong Python 🔸 Mô-đun JSONThật may mắn cho chúng tôi, Python đi kèm với một mô-đun tích hợp có tên là 8. Nó được cài đặt tự động khi bạn cài đặt Python và nó bao gồm các chức năng giúp bạn làm việc với các tệp và chuỗi JSONChúng tôi sẽ sử dụng mô-đun này trong các ví dụ sắp tới Cách nhập Mô-đun JSONĐể sử dụng 8 trong chương trình của mình, chúng ta chỉ cần viết một câu lệnh nhập ở đầu tệpNhư thế này Với dòng này, bạn sẽ có quyền truy cập vào các chức năng được xác định trong mô-đun. Chúng tôi sẽ sử dụng một vài trong số chúng trong các ví dụ 💡 Mẹo. Nếu bạn viết câu lệnh nhập này, bạn sẽ cần sử dụng cú pháp này để gọi một hàm được xác định trong mô-đun 8🔹 Chuỗi Python và JSONĐể minh họa cách thức hoạt động của một số chức năng quan trọng nhất của mô-đun 8, chúng tôi sẽ sử dụng một chuỗi nhiều dòng có định dạng JSONChuỗi JSONĐặc biệt, chúng tôi sẽ sử dụng chuỗi này trong các ví dụ. Nó chỉ là một chuỗi Python nhiều dòng thông thường tuân theo định dạng JSON Chuỗi JSON
💡 Mẹo. Khuyến nghị sử dụng ký tự trích dẫn kép cho chuỗi trích dẫn ba. Chuỗi JSON sang từ điển PythonChúng tôi sẽ sử dụng chuỗi có định dạng JSON để tạo từ điển Python mà chúng tôi có thể truy cập, làm việc và sửa đổi Để làm điều này, chúng ta sẽ sử dụng hàm 9 của mô-đun 8, chuyển chuỗi làm đối sốĐây là cú pháp cơ bản Đây là mã
Hãy tập trung vào dòng này
Tuyệt vời. Nếu chúng ta in từ điển này, chúng ta sẽ thấy đầu ra này
Từ điển đã được điền dữ liệu của chuỗi JSON. Mỗi cặp khóa-giá trị đã được thêm thành công Bây giờ, hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng truy cập các giá trị của các cặp khóa-giá trị với cùng một cú pháp mà chúng ta sẽ sử dụng để truy cập các giá trị của một từ điển Python thông thường
đầu ra là
Chính xác những gì chúng tôi mong đợi. Mỗi khóa có thể được sử dụng để truy cập giá trị tương ứng của nó 💡 Mẹo. Chúng ta có thể sử dụng từ điển này giống như bất kỳ từ điển Python nào khác. Ví dụ: chúng ta có thể gọi các phương thức từ điển, thêm, cập nhật và xóa các cặp khóa-giá trị, v.v. Chúng ta thậm chí có thể sử dụng nó trong vòng lặp for JSON sang Python. Chuyển đổi loạiKhi bạn sử dụng 9 để tạo từ điển Python từ chuỗi JSON, bạn sẽ nhận thấy rằng một số giá trị sẽ được chuyển đổi thành giá trị Python và kiểu dữ liệu tương ứng của chúngBảng này được trình bày trong mô-đun cho 8 tóm tắt sự tương ứng giữa các loại và giá trị dữ liệu JSON với các loại và giá trị dữ liệu PythonBảng trình bày chính thức💡 Mẹo. Bảng chuyển đổi tương tự áp dụng khi chúng tôi làm việc với các tệp JSON Từ điển Python sang chuỗi JSONBây giờ bạn đã biết cách tạo từ điển Python từ chuỗi có định dạng JSON Nhưng đôi khi chúng ta có thể cần phải làm hoàn toàn ngược lại, tạo một chuỗi có định dạng JSON từ một đối tượng (ví dụ: từ điển) để in, hiển thị, lưu trữ hoặc làm việc với nó dưới dạng một chuỗi Để làm điều đó, chúng ta có thể sử dụng hàm 2 của mô-đun 8, truyền đối tượng làm đối số💡 Mẹo. Hàm này sẽ trả về một chuỗi Đây là một ví dụ mà chúng tôi chuyển đổi từ điển Python 4 thành một chuỗi có định dạng JSON và lưu trữ nó trong một biến
Hãy tập trung vào dòng này 0
Nếu chúng ta in chuỗi này, chúng ta sẽ thấy đầu ra này 1💡 Mẹo. Lưu ý rằng giá trị cuối cùng ( 6) đã được thay đổi. Trong từ điển Python, giá trị này là 8 nhưng trong JSON, giá trị tương đương là 6. Điều này giúp chúng tôi xác nhận rằng, thực sự, từ điển gốc hiện được biểu diễn dưới dạng một chuỗi có định dạng JSONNếu chúng ta kiểm tra kiểu dữ liệu của biến này, chúng ta sẽ thấy 2Vì vậy, giá trị trả về của hàm này chắc chắn là một chuỗi Python sang JSON. Chuyển đổi loạiQuá trình chuyển đổi kiểu cũng xảy ra khi chúng ta chuyển từ điển thành chuỗi JSON. Bảng này từ minh họa các giá trị tương ứng Bảng từCách in JSON bằng cách thụt lềNếu chúng ta sử dụng hàm 2 và in chuỗi mà chúng ta có trong ví dụ trước, chúng ta sẽ thấy 1Nhưng điều này không phải là rất dễ đọc, phải không? Chúng tôi có thể cải thiện khả năng đọc của chuỗi JSON bằng cách thêm thụt đầu dòng Để thực hiện việc này một cách tự động, chúng ta chỉ cần truyền đối số thứ hai để chỉ định số lượng khoảng trắng mà chúng ta muốn sử dụng để thụt lề chuỗi JSON 💡 Mẹo. đối số thứ hai phải là một số nguyên không âm (số khoảng trắng) hoặc một chuỗi. Nếu thụt lề là một chuỗi (chẳng hạn như 1) thì chuỗi đó được dùng để thụt lề từng cấp ()Bây giờ, nếu chúng ta gọi 2 với đối số thứ hai này 4Kết quả của việc in 6 là 5Điều đó thật tuyệt phải không? . Điều này sẽ rất hữu ích khi chúng ta bắt đầu làm việc với các tệp để lưu trữ dữ liệu ở định dạng mà con người có thể đọc được Cách sắp xếp các phímBạn cũng có thể sắp xếp các phím theo thứ tự bảng chữ cái nếu cần. Để làm điều này, bạn chỉ cần viết tên của tham số 4 và truyền giá trị 5💡 Mẹo. Giá trị của 4 là 8 theo mặc định nếu bạn không chuyển giá trịVí dụ 6Trả về chuỗi này với các phím được sắp xếp theo thứ tự bảng chữ cái 7Cách sắp xếp theo thứ tự bảng chữ cái và thụt lề (đồng thời)Để tạo một chuỗi JSON được sắp xếp theo thứ tự bảng chữ cái và thụt lề, bạn chỉ cần truyền hai đối số Trong trường hợp này, đầu ra là 8💡 Mẹo. Bạn có thể chuyển các đối số này theo bất kỳ thứ tự nào (tương đối với nhau), nhưng đối tượng phải là đối số đầu tiên trong danh sách Tuyệt. Bây giờ bạn đã biết cách làm việc với các chuỗi JSON, vậy hãy xem cách bạn có thể làm việc với các tệp JSON trong chương trình Python của mình 🔸 JSON và tệpThông thường, JSON được sử dụng để lưu trữ dữ liệu trong các tệp, vì vậy Python cung cấp cho chúng tôi các công cụ cần thiết để đọc các loại tệp này trong chương trình của mình, làm việc với dữ liệu của chúng và ghi dữ liệu mới 💡 Mẹo. một tệp JSON có phần mở rộng 8Hãy xem cách chúng ta có thể làm việc với các tệp 8 trong PythonCách đọc tệp JSON bằng PythonGiả sử rằng chúng tôi đã tạo một tệp 0 với dữ liệu này đại diện cho hai đơn đặt hàng trong một cửa hàng bánh pizza 9đơn hàng. jsonVui lòng dành chút thời gian để phân tích cấu trúc của tệp JSON này Dưới đây là một số mẹo nhanh
Nếu chúng ta muốn đọc tệp này bằng Python, chúng ta chỉ cần sử dụng câu lệnh 2💡 Mẹo. Theo cú pháp trên, chúng ta có thể gán bất kỳ tên nào cho 3 (hộp màu xanh lá cây). Đây là một biến mà chúng ta có thể sử dụng trong câu lệnh 2 để chỉ đối tượng tệpDòng mã chính trong cú pháp này là 0
💡 Mẹo. Lưu ý rằng chúng tôi đang sử dụng 1 thay vì 9. Đây là một chức năng khác trong mô-đun 8. Bạn sẽ tìm hiểu thêm về sự khác biệt của chúng ở cuối bài viết nàyKhi chúng tôi có nội dung của tệp JSON được lưu trữ trong biến 6 dưới dạng từ điển, về cơ bản chúng tôi có thể sử dụng nó để làm bất cứ điều gì chúng tôi muốnví dụVí dụ, nếu chúng ta viết 1Đầu ra là 1 vì giá trị của khóa chính 9 là một danh sách có hai phần tửChúng ta cũng có thể sử dụng các phím để truy cập các giá trị tương ứng của chúng. Đây là những gì chúng tôi thường làm khi làm việc với các tệp JSON Ví dụ: để truy cập phần trên cùng của đơn hàng đầu tiên, chúng tôi sẽ viết 2
Bạn có thể thấy "con đường" này bằng đồ họa trong sơ đồ Nếu chúng ta in giá trị này, đầu ra là 3Chính xác những gì chúng tôi mong đợi. Bạn chỉ cần "đi sâu" vào cấu trúc của từ điển bằng cách sử dụng các khóa và chỉ số cần thiết. Bạn có thể sử dụng tệp/chuỗi JSON gốc làm tài liệu tham khảo trực quan. Bằng cách này, bạn có thể truy cập, sửa đổi hoặc xóa bất kỳ giá trị nào 💡 Mẹo. Hãy nhớ rằng chúng tôi đang làm việc với từ điển mới. Những thay đổi được thực hiện đối với từ điển này sẽ không ảnh hưởng đến tệp JSON. Để cập nhật nội dung của tệp, chúng ta cần ghi vào tệp Cách ghi vào tệp JSONHãy xem cách bạn có thể ghi vào tệp JSON Dòng đầu tiên của câu lệnh 2 rất giống nhau. Thay đổi duy nhất là bạn cần mở tệp ở chế độ 7 (ghi) để có thể sửa đổi tệp💡 Mẹo. Nếu tệp chưa tồn tại trong thư mục làm việc hiện tại (thư mục), nó sẽ được tạo tự động. Bằng cách sử dụng chế độ 7, chúng tôi sẽ thay thế toàn bộ nội dung của tệp nếu nó đã tồn tạiCó hai cách khác để ghi vào tệp JSON trong phần thân của câu lệnh 2
Hãy xem chúng một cách chi tiết Cách tiếp cận đầu tiên. 0Đây là một hàm có hai đối số
Giả sử cửa hàng bánh pizza muốn xóa dữ liệu của khách hàng khỏi tệp JSON và tạo một tệp JSON mới có tên là 3 với phiên bản mới nàyChúng ta có thể làm điều này với mã này 4Đây là phiên bản gốc của dữ liệu trong tệp 0. Lưu ý rằng cặp khóa-giá trị 5 tồn tại 5đơn hàng. jsonĐây là phiên bản mới trong tệp 3 6đơn đặt hàng_mới. jsonNếu bạn phân tích kỹ điều này, bạn sẽ thấy rằng cặp khóa-giá trị 7 đã bị xóa khỏi tất cả các đơn đặt hàngTuy nhiên, có một cái gì đó thiếu trong tập tin này, phải không? Hãy dành một chút thời gian để suy nghĩ về điều này. Nó có thể là gì? Tất nhiên là thụt lề Tệp không thực sự giống tệp JSON, nhưng chúng ta có thể dễ dàng khắc phục điều này bằng cách chuyển đối số 8 thành 2Bây giờ nội dung của tập tin trông như thế này 7đơn hàng_mới. jsonThật la khac biệt. Đây chính xác là những gì chúng tôi mong đợi một tệp JSON trông như thế nào Bây giờ bạn đã biết cách đọc và ghi vào tệp JSON bằng cách sử dụng 1 và 2. Hãy xem sự khác biệt giữa các hàm này và các hàm mà chúng ta đã sử dụng để làm việc với các chuỗi JSON. 🔹 tải() so với. tải ()Bảng này tóm tắt sự khác biệt chính giữa hai chức năng này 💡 Mẹo. Hãy coi 9 là "chuỗi tải" và điều đó sẽ giúp bạn nhớ chức năng nào được sử dụng cho mục đích nào🔸 kết xuất () so với. bãi ()Ở đây chúng tôi có một bảng tóm tắt sự khác biệt chính giữa hai chức năng này 💡 Mẹo. Hãy coi 0 như một "chuỗi kết xuất" và điều đó sẽ giúp bạn nhớ hàm nào được sử dụng cho mục đích gì🔹 Thuật ngữ quan trọng trong JSONCuối cùng, có hai thuật ngữ quan trọng mà bạn cần biết để làm việc với JSON
🔸 Tóm lại
Tôi thực sự hy vọng bạn thích bài viết của tôi và thấy nó hữu ích. Bây giờ bạn đã biết cách làm việc với JSON trong Python. Theo dõi tôi trên Twitter @EstefaniaCassN và xem các khóa học trực tuyến của tôi QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nhà phát triển, nhà văn kỹ thuật và người tạo nội dung @freeCodeCamp. Tôi chạy freeCodeCamp. org Kênh YouTube Español Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Cách lấy chìa khóaNhận tất cả khóa và giá trị từ đối tượng json trong Python . {"emp_details". [ {"tên". "sự giúp đỡ". "123" }, {"tên". "đấu thầu". "345" } ] } dữ liệu = json. tải (Tệp json) jsonData = data["emp_details"] keys = x. keys() giá trị = x. . nhập json với open("test. json") dưới dạng jsonFile. dữ liệu = json Làm cách nào để kiểm tra khóa trong JSON Python?Để truy cập các giá trị, bạn nên chuyển đổi chuỗi JSON thành từ điển python bằng cách sử dụng 'json. loads()' sau khi nhập mô-đun 'json' . Sau đó, bạn có thể kiểm tra xem một khóa có tồn tại trong từ điển hay không và nếu nó tồn tại, bạn có thể truy cập giá trị.
Làm cách nào để lấy các giá trị từ đối tượng JSON trong Python?Thay vì phương thức tải JSON đọc chuỗi JSON, phương thức được sử dụng để đọc dữ liệu JSON trong tệp là load() . Phương thức load() chiếm một đối tượng tệp và trả về dữ liệu JSON được phân tích thành một đối tượng Python. Để lấy đối tượng tệp từ đường dẫn tệp, có thể sử dụng hàm open() của Python.
Làm cách nào để trích xuất khóa từ JSON?Bây giờ, hãy thảo luận về các cách tiếp cận khác nhau để tìm nạp khóa từ JSON. . 3. 1. Sử dụng tên trường. Chúng ta có thể sử dụng phương thức fieldNames() trên phiên bản JsonNode để tìm nạp các tên trường lồng nhau. . 3. 2. Sử dụng JsonParser. Chúng ta cũng có thể sử dụng lớp JsonParser để phân tích cú pháp JSON cấp thấp. . 3. 3. Sử dụng bản đồ |