Con questo codiceControllare se la chiave/valore è in 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
ottengo un JSON-Feed in questo modo:
{
"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"
}
Come si può verificare se il 'corpo' è 'presente' (o 'codice' è '200')? Il mio script deve restituire VERO o FALSO
UPDATE
Se posso aggiungere questo codice come proposto nelle risposte funziona benissimo:
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)
Questo perché si sta dumping La JSON, si dovrebbe usare sia 'D = json.loads (risultato)' o semplicemente caricare il JSON prima. –
Thx, quella era la soluzione! – Simon
non ti preoccupare, devi anche usare 'in' per trovare il se '' body'' è il ditt, le altre risposte sono alla ricerca di un valore' Present' che immagino non sia quello che vuoi. Presumo per 'presente' che vuoi dire esiste –