본문 바로가기
파이썬

파이썬 키 / 값이 JSON에 있는지 확인

by º기록 2020. 11. 29.
반응형

이 코드로

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

다음과 같은 JSON 피드가 표시됩니다.

{
 "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"
}

'body'가 '존재'(또는 'code'가 '200')인지 어떻게 확인할 수 있습니까? 내 스크립트는 TRUE 또는 FALSE를 반환해야합니다.

업데이트

이 코드를 답변에 제안 된대로 추가하면 제대로 작동합니다.

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)

 

해결 방법

 

본문 키가 실제로 있는지 확인해야 할 수도 있습니다.

def checkJson(jsonContents):
    bodyFlag = True if "body" in jsonContents["objects"][0]["data"] and jsonContents["objects"][0]["data"]["body"] == "Present" else False
    codeFlag = True if "code" in jsonContents["objects"][0]["data"] and jsonContents["objects"][0]["data"]["code"] == 200 else False

    return bodyFlag or codeFlag

print checkJson(result)

 

참조 페이지 https://stackoverflow.com/questions/28780547

 

 

반응형

댓글