Hướng dẫn how do you check if a key exists in a json python? - làm cách nào để kiểm tra xem khóa có tồn tại trong json python không?

Tôi có một loạt dữ liệu JSON từ các bài đăng trên Facebook như dưới đây:

{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}

Dữ liệu JSON là bán cấu trúc và tất cả đều không giống nhau. Dưới đây là mã của tôi:

import json 

str = '{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}'
data = json.loads(str)

post_id = data['id']
post_type = data['type']
print(post_id)
print(post_type)

created_time = data['created_time']
updated_time = data['updated_time']
print(created_time)
print(updated_time)

if data.get('application'):
    app_id = data['application'].get('id', 0)
    print(app_id)
else:
    print('null')

#if data.get('to'):
#... This is the part I am not sure how to do
# Since it is in the form "to": {"data":[{"id":...}]}

Tôi muốn mã in TO_ID dưới dạng 1543 khác in 'null'

Tôi không chắc chắn làm thế nào để làm điều này.

Trong hướng dẫn này, chúng tôi sẽ học cách kiểm tra xem một khóa có tồn tại trong chuỗi JSON (ký hiệu đối tượng JavaScript) hay không sử dụng Python không.

JSON là một loại định dạng dữ liệu phổ biến và đặc biệt được sử dụng để thao tác dữ liệu. Vì vậy, hãy để Lôi nhìn thấy .. ..

Chương trình Python để kiểm tra xem một khóa có tồn tại trong chuỗi JSON không

Đầu tiên, hãy để xem xét chuỗi JSON sau.

'{"website":"codespeedy","topic":"json and python","year":2019,"list":[10,20,30]}'

Để phát hiện xem một khóa có tồn tại trong chuỗi được định dạng JSON ở trên hay không, bạn nên sử dụng từ khóa ‘trong từ khóa như Python coi dữ liệu JSON ở trên là chuỗi. Xem mã dưới đây và cố gắng hiểu:

json_string='{"website":"codespeedy","topic":"json and python","year":2020,"list":[10,20,30]}'
if "website" in json_string:
    print("The required key is present")
else:
    print("The required key is absent")

Đầu ra của chương trình trên sẽ là:

The required key is present

Vì khóa trang web có mặt trong JSON_STRING, vì vậy khối ‘nếu được thực hiện.

Chúng tôi không thể truy cập các giá trị bằng các khóa trong phương thức này. Để 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 phương thức ‘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ị. Xem mã sau.

import json

json_string='{"website":"codespeedy","topic":"json and python","year":2020,"list":[10,20,30]}'
python_dict=json.loads(json_string)
if "website" in python_dict:
    print("The required key is present")
    print("The value is="+str(python_dict["website"]))
else:
    print("The required key is absent")

Và dưới đây là kết quả đầu ra:

The required key is present
The value is=codespeedy

Đó là tất cả…

Bạn cũng có thể học:

  • Cách chuyển đổi chuỗi JSON thành Từ điển Python
  • Chuyển đổi JSON thành một danh sách trong chương trình Python

Sự kết luận

Tóm lại, chúng tôi đã học được cách kiểm tra xem khóa có nằm trong từ điển bằng nhiều cách không. Chúng tôi cũng đã học được cách áp dụng các phương pháp đó vào các trường hợp khác nhau để xem liệu khóa có nằm trong từ điển không. Chúng tôi cũng đã thấy làm thế nào mỗi tùy chọn mất một lượng thời gian khác nhau.

Chủ đề tiếp theo#contains(outputs('Invoke_an_HTTP_request'),'locationUri'did not help.

Làm thế nào tôi có thể biết nếu một khóa JSON có sẵn?

JSONObject :: chứa kiểm tra () kiểm tra xem một khóa có tồn tại trong đối tượng được chỉ bởi jsonObject hay không. Nếu jsonObject là null, chức năng này trả về sai.
"displayName": "",
"locationUri": "",
"locationType": "conferenceRoom",
"uniqueId": "",
"uniqueIdType": "directory",
"address": {
"street": "",
"city": "",
"state": "",
"countryOrRegion": "",
"postalCode": ""
},
"coordinates": {}
},
"locations": [
{
"displayName": "",
"locationUri": "",
"locationType": "conferenceRoom",
"uniqueId": "",
"uniqueIdType": "directory",
"address": {
"street": "",
"city": "",
"state": "",
"countryOrRegion": "",
"postalCode": ""
},
"coordinates": {}
}
],

Sự kết luận

Trong một từ điển, các giá trị có thể thuộc bất kỳ cấu trúc dữ liệu nào và thậm chí có thể được sao chép, nhưng các khóa không thể được sao chép phải là bất biến.

Kiểm tra khóa trong từ điển

Trong Python, một từ điển thực sự là một cấu trúc dữ liệu hữu ích lưu trữ các cặp giá trị khóa. Nhận giá trị của một khóa cụ thể từ từ điển thường được yêu cầu trong lập trình; Tuy nhiên, sự tồn tại của một khóa cụ thể trong từ điển không thực sự được đảm bảo luôn luôn. Kết quả là, bạn nên kiểm tra kỹ xem một khóa thuộc về từ điển trước khi lấy giá trị của nó hay không.

Sử dụng has_key ()

Nếu một khóa nhất định được tìm thấy trong từ điển, phương thức has_key () sẽ trả về đúng; Khác, nó trả về sai.has_key() method returns true; else, it returns false.

Python 3 đã làm cho điều này không còn phản đối. Phương pháp này có thể được sử dụng nếu chúng ta đang chạy trên một phiên bản cũ hơn Python 3.

Lệnh dưới đây có thể được sử dụng để xác nhận phiên bản Python trong CMD.

Code:

Output:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [37], in ()
      1 Animals = {'1': "Cat", '2':"Rat", '3':"Bat"}
      2 key_to_check_for = '2'
----> 3 if Animals.has_key(key_to_check_for):
      4   print("Key exists in Animals")
      5 else:

AttributeError: 'dict' object has no attribute 'has_key'

Vì mã này được thực thi trên Python 3, nó đang hiển thị lỗi.

Tuyên bố if-in

Phương pháp này kiểm tra xem một khóa cụ thể có tồn tại bên trong từ điển bằng cách sử dụng câu lệnh if-in hay không. Chúng tôi sử dụng nhà điều hành thành viên trong, theo cách này. Toán tử này được sử dụng để xác định xem một giá trị có thuộc về một giá trị khác không. Nó cho bạn một kết quả boolean.

Code:

Output:

Bây giờ, nhìn vào trường hợp tiêu cực.

Code:

Output:

There is no key "4" in Animals

Tương tự như vậy, người không vận hành có thể được sử dụng để xem liệu khóa trong từ điển không tồn tại. Tuy nhiên, hãy nhớ rằng hoạt động trong trường hợp nhạy cảm, vì vậy hãy đảm bảo tất cả các khóa là cùng một trường hợp hoặc sử dụng các phương thức cao hơn () hoặc thấp hơn ().higher() or lower() methods.

Code:

Output:

Sử dụng phương thức get ()

Phương thức Get () cung cấp giá trị của khóa liên quan trong từ điển. Nếu khóa không có ở đó, nó sẽ trả về không có hoặc giá trị mặc định (nếu một cái được cung cấp). Chúng ta có thể chuyển một chìa khóa cho phương pháp này và xem nó có tồn tại trong Từ điển Python đã cho không.

Cú pháp của hàm get () là:

Ở đây, tên Dict là tiêu đề của từ điển bạn sẽ sử dụng.

Thông số

  1. KeyName- Tên khóa của giá trị mà bạn muốn trả về. The value's keyname that you want to return.
  2. Giá trị- Nếu khóa không tồn tại, giá trị này được cung cấp như một tùy chọn. If the key does not exist, this value is supplied as an option.

Code:

Output:

Bây giờ đang dùng một trường hợp tiêu cực,

Code:

Output:

There is no key "5" in Animals

Khi sử dụng phương pháp này, xin vui lòng ghi nhớ rằng nếu chúng ta có chìa khóa với giá trị đó, nó sẽ không chính xác. Nếu chúng ta không có, kỹ thuật này sẽ đủ. Nếu chúng ta muốn sử dụng các giá trị được trả về bởi phương thức này, chúng ta có thể lưu chúng trong một biến.

Sử dụng Keys ()

Hàm các phím () và toán tử "trong" có thể được sử dụng để xem liệu khóa có tồn tại trong từ điển không. Phương thức khóa () trả về một danh sách các khóa trong từ điển và câu lệnh "IF, trong" có kiểm tra xem khóa được cung cấp có trong danh sách hay không. Nó trả về đúng nếu chính tồn tại; Nếu không, nó trả về sai.keys() function and the "in" operator can be used to see if a key exists in a dictionary. The keys() method returns a list of keys in the dictionary, and the "if, in" statement checks whether the provided key is in the list. It returns True if the key exists; otherwise, it returns False.

Đầu vào

Output:

Kiểm tra xem từ điển có nhiều khóa không.

Trong một tuyên bố, chúng ta cũng có thể kiểm tra xem từ điển có chứa nhiều khóa không. Chúng ta có thể sử dụng chức năng All () kết hợp với danh sách hiểu để xem từ điển có chứa nhiều hoặc tất cả các khóa không.all() function in combination with the list comprehension to see if the dictionary contains many or all keys.

Code:

Output:

import json 

str = '{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}'
data = json.loads(str)

post_id = data['id']
post_type = data['type']
print(post_id)
print(post_type)

created_time = data['created_time']
updated_time = data['updated_time']
print(created_time)
print(updated_time)

if data.get('application'):
    app_id = data['application'].get('id', 0)
    print(app_id)
else:
    print('null')

#if data.get('to'):
#... This is the part I am not sure how to do
# Since it is in the form "to": {"data":[{"id":...}]}
0

Kiểm tra danh sách các từ điển để xem liệu chính có tồn tại không

Danh sách các từ điển là một tập hợp các từ điển có thể được tìm thấy trong một danh sách.

  • list_of_dictionary - một danh sách với ba đối tượng từ điển trong đó.
  • "B" trong các khóa cho các khóa trong danh sách từ điển - tạo danh sách các khóa trong danh sách từ điển bằng cách sử dụng danh sách hiểu. Sau đó, trong danh sách, xem nếu có sẵn. Nó sẽ trả về một danh sách với các khóa thực sự là "B" và sai cho các khóa không phải là một.
  • Bất kỳ () - Xác minh danh sách đúng/sai được cung cấp bởi danh sách hiểu. Chìa khóa "B" có mặt trong danh sách từ điển nếu nó bao gồm ít nhất một đúng. Khối "if" sau đó được thực thi sau khi nó trả về true. Nếu không, khối "khác" được thực thi.

Code:

Output:

import json 

str = '{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}'
data = json.loads(str)

post_id = data['id']
post_type = data['type']
print(post_id)
print(post_type)

created_time = data['created_time']
updated_time = data['updated_time']
print(created_time)
print(updated_time)

if data.get('application'):
    app_id = data['application'].get('id', 0)
    print(app_id)
else:
    print('null')

#if data.get('to'):
#... This is the part I am not sure how to do
# Since it is in the form "to": {"data":[{"id":...}]}
1

Kiểm tra xem khóa có nằm trong từ điển JSON không

JSON là viết tắt của "ký hiệu đối tượng JavaScript" và nó là một cặp giá trị khóa lưu các giá trị.

Phương thức JSON.LOADS () có thể được sử dụng để xây dựng từ điển từ văn bản JSON.json.loads() method can be used to construct a dictionary from a JSON text.

Sau đó, như đã thấy dưới đây, chúng ta có thể sử dụng "nếu và trong" để xem liệu khóa có có trong từ điển JSON hay không.

Đầu vào

Output:

import json 

str = '{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}'
data = json.loads(str)

post_id = data['id']
post_type = data['type']
print(post_id)
print(post_type)

created_time = data['created_time']
updated_time = data['updated_time']
print(created_time)
print(updated_time)

if data.get('application'):
    app_id = data['application'].get('id', 0)
    print(app_id)
else:
    print('null')

#if data.get('to'):
#... This is the part I am not sure how to do
# Since it is in the form "to": {"data":[{"id":...}]}
2

Kiểm tra xem từ điển có nhiều khóa không.

Trong một tuyên bố, chúng ta cũng có thể kiểm tra xem từ điển có chứa nhiều khóa không. Chúng ta có thể sử dụng chức năng All () kết hợp với danh sách hiểu để xem từ điển có chứa nhiều hoặc tất cả các khóa không.


Kiểm tra danh sách các từ điển để xem liệu chính có tồn tại không#

Làm thế nào tôi có thể biết nếu một khóa JSON có sẵn?

JSONObject :: chứa kiểm tra () kiểm tra xem một khóa có tồn tại trong đối tượng được chỉ bởi jsonObject hay không. Nếu jsonObject là null, chức năng này trả về sai. tests whether a key exists in the object pointed by the JsonObject . If the JsonObject is null, this function returns false .

Làm thế nào để bạn kiểm tra xem một khóa tồn tại trong đối tượng JSON và nhận được giá trị của nó?

Sử dụng mã dưới đây để tìm khóa có tồn tại hay không trong JSONObject.có phương thức ("khóa") được sử dụng để tìm các khóa trong JSONObject.Nếu bạn đang sử dụng phương thức OptString ("Key") để nhận giá trị chuỗi thì đừng lo lắng về các khóa có tồn tại hay không trong JSONObject.Lưu ý rằng bạn chỉ có thể kiểm tra các phím gốc có ().Nhận các giá trị với get ().has("key") method is used to find keys in JsonObject . If you are using optString("key") method to get String value then don't worry about keys are existing or not in the JsonObject . Note that you can check only root keys with has(). Get values with get().

Làm thế nào để bạn kiểm tra xem một giá trị có tồn tại trong chuỗi JSON trong Python không?

Một cách dễ dàng là sử dụng nếu kiểm tra dữ liệu ["người chơi"] .__ str __ () sẽ chuyển đổi giá trị thành một chuỗi và tìm kiếm trận đấu.Nếu bạn muốn đảm bảo rằng giá trị kiểm tra chỉ kiểm tra các giá trị steam64, bạn có thể viết một hàm đơn giản sẽ lặp lại trên tất cả "người chơi" và sẽ kiểm tra các giá trị "steam64" của chúng.if check in data["players"]. __str__() which will convert value to a string and search for the match. If you want to make sure that check value only checks for the steam64 values, you can write a simple function that will iterate over all "players" and will check their "steam64" values.

Giá trị có thể là chìa khóa trong JSON?

Các khóa phải là chuỗi và các giá trị phải là loại dữ liệu JSON hợp lệ: Chuỗi.con số.values must be a valid JSON data type: string. number.