python dict判断key是否存在_用try来判断JSON中键名KEY是否存在

e050ae99f1d01209702be15ad1de53e5.gif

有狐友提问,如果我设计的JSON有二个字段,结果他只传了一个,我要怎么判断他有没有传?

例:

cJson字符串如下

{

  "name":"张三",

  "age":20

}

结果有人调用时少传了age,那要怎么判断呢?

我们可以利用try达到这样的效果

oJson=foxjson_parse(cJson)

try 

 nage=oJson.item("age")

cathe

 error "age不存在"

endtry 

有些WebApi设计比较奇芭,错误判断字段不会随正确的JSON返回,而是另外返回,如

{"error_code":"100227","error_desc":"The resource is conflicted."}

正确的JSON却不含 error_code,error_desc字段,

那么我们应该如何设计捕捉中间层抛出来的错误呢,利用两个try结构就可以了。

Try

*如果返回的是errno ,不会有name和age字段,就会抛错到下一层

        cname=oJson.item("name")

        nage=oJson.item("age")

Catch

Try

cerrmsg=oJson.Item("error_desc")+"错误代码:("+oJson.Item("error_code")+")"

Error cerrmsg  &&内层抛出

Catch To ex

llbreak=.T.

IF ex.errorno=1098

cerrmsg=ex.Message

ELSE

cerrmsg=cReturn &&不能解析的错误,把返回的JSON全部显示

ENDIF 

Messagebox(cerrmsg)

Endtry

Endtry

如果没有error_desc里面的信息,说明WEBAPI返回的信息超出预期,那么我们就全部显示。

因为有些中间层,除了写在文档里面的错误字段,有时还会用其它的字段代表错误。

这算是一个技巧了吧。

4157728fa1462596483da89a44ce9094.png

e050ae99f1d01209702be15ad1de53e5.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值