【发布时间】:2015-02-28 10:13:07
【问题描述】:
使用此代码
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-Feed:
{
"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"
}
如何检查“正文”是否“存在”(或“代码”是否为“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)
【问题讨论】:
-
那是因为你正在转储json,你应该使用
d=json.loads(result)或者先加载json。 -
谢谢,这就是解决方案!
-
不用担心,您还需要使用
in来查找如果'body'是我的字典,其他答案正在寻找一个值Present,我想这不是您想要的.我假设present你的意思是存在