【发布时间】:2015-08-12 01:15:05
【问题描述】:
初学者问题。
我正在卷曲我的数据库以查看某个对象是否存在于某个 requestId 中。
理想情况下,我的代码应该是这样的:
if totalobjects_start == 0:
create a cron job
elif totalobjects_start < 24:
pass
当具有该 requestId 的表中存在 1+ 个对象时,这很好。注意属性totalObjects 是1。
{"offset":0,"data":[{"created":1439328152000,"locationId":0,"requestId":"A6NMD6","latency":0,"___class":"Latency","totalObjects":1}
但是,当表中不存在具有 requestId 的对象时,JSON 转储如下所示:
{"code":1017,"message":"Invalid where clause. Not existing columns: "}
我遇到的问题是为条件语句分配变量。如果表中没有对象并且我尝试将 totalobjects_start 分配给 JSON 属性 totalObjects,我将得到一个 KeyError,因为它在 JSON 转储中不存在。
这是我正在尝试做的伪代码:
try to see if code 1017
if not, see if totalObjects is at least 1
if code 1017 (no objects):
create a cron job
elif totalObjects is at least 1 and less than 24:
pass
下面的代码显然是错误的,但我想至少努力一下:
totalobjects_start_str = totalobjects_search_start.decode(encoding='utf-8')
def totalobjects_count():
try:
totalobjects_start_1017 = json.loads(totalobjects_start_str, strict=False)['code']
except (ValueError, KeyError, TypeError):
totalobjects_start = int(json.loads(totalobjects_start_str, strict=False)['totalObjects'])
totalobjects_count()
if totalobjects_start_1017 == '1017':
job.hours.every(2)
cron.write()
elif totalobjects_start < 24:
pass
【问题讨论】:
-
缩进是否正确?你能更清楚地知道你想做什么吗?输入是什么,你希望它最终是什么?
-
缩进是否因为看起来不正确而发布?
-
对不起,昨天太累了,问题有点含糊。我在原始帖子中重写了问题。
标签: python json python-3.x