Mit diesem CodeÜberprüfen Sie, ob Schlüssel/Wert in JSON ist
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
erhalte ich eine JSON-Feed-wie folgt aus:
{
"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"
}
Wie kann ich, wenn 'Körper' überprüfen ist 'Gegenwart' (oder "Code" ist "200")? Mein Skript sollte TRUE oder FALSE zurück
UPDATE
Wenn ich diesen Code hinzufügen, wie in den Antworten vorgeschlagen, es funktioniert:
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)
Das liegt daran, dass Sie die json Dumping, sollten Sie entweder 'd = json.loads (Ergebnis)' oder direkt mit der ersten json laden. –
Thx, das war die Lösung! – Simon
keine Sorgen, Sie müssen auch 'in' verwenden, um zu finden, wenn' 'body'' ist ich das dict, die anderen Antworten suchen nach einem Wert' Present', die ich vorstellen, ist nicht das, was Sie wollen. Ich nehme an, mit "Present" meinen Sie existiert –