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ố
- 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.
- 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":...}]}
0Kiể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":...}]}
1Kiể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":...}]}
2Kiể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#