Với mã nàyKiểm tra xem key/value là trong JSON
import sense
import json
sense.api_key = '...'
node = sense.Node.retrieve('........')
feed = node.feeds.retrieve('presence')
events = feed.events.list(limit=1)
result = json.dumps(events,indent=1)
print result
tôi nhận được một JSON-Feed như thế này:
{
"links": {...},
"objects": [
{
"profile": "GenStandard",
"feedUid": ".....",
"gatewayNodeUid": ".....",
"dateServer": "2015-02-28T09:57:22.337034",
"geometry": null,
"data": {
"body": "Present",
"code": 200
},
"signal": "-62",
"dateEvent": "2015-02-28T09:57:22.000000",
"type": "presence",
"payload": "2",
"nodeUid": "....."
}
],
"totalObjects": 875,
"object": "list"
}
Làm thế nào tôi có thể kiểm tra nếu 'cơ thể' là 'hiện tại' (hoặc 'mã' là '200')? Kịch bản của tôi nên trở về TRUE hoặc FALSE
CẬP NHẬT
Nếu tôi thêm mã này như đề xuất trong các câu trả lời nó hoạt động tốt:
d=json.loads(result)
def checkJson(jsonContents):
bodyFlag = True if "body" in jsonContents["objects"][0]["data"] and jsonContents["objects"][0]["data"]["body"] == "Present" else False
return bodyFlag
print checkJson(d)
Đó là bởi vì bạn đang bán phá giá json, bạn nên hoặc sử dụng 'd = json.loads (kết quả)' hoặc chỉ tải các json đầu tiên. –
Thx, đó là giải pháp! – Simon
không phải lo lắng, bạn cũng cần phải sử dụng 'in' để tìm nếu' 'body'' là i dict, các câu trả lời khác đang tìm kiếm một giá trị 'Present' mà tôi tưởng tượng không phải là những gì bạn muốn. Tôi giả sử bằng 'hiện tại' bạn có nghĩa là tồn tại –