zx2000 发表于 2019-11-18 13:36

Python 的小问题

本帖最后由 zx2000 于 2019-11-18 14:14 编辑

接口返回json数据,例如:
result={
      "A": {
                "A1": "这是A1",
                "A2": "这是A2"
      }
}

有时候返回的json里面没有 A2这对数据
然后result["A"]["A2"]就会报错,我想在程序碰到没有A2这对数据时,输出null。
实际中,不止少一对值
有没有大佬说一下方法{:301_972:}{:301_972:}

井右寺 发表于 2019-11-18 13:38

本帖最后由 井右寺 于 2019-11-18 13:49 编辑

getattr(dict,'key', null)
用这种取值方式,别直接取(emm,错了,这是去对象的)

dict.get(key, default)才是取字典的

coderLee23 发表于 2019-11-18 13:40

用jsonpath抽取 判定

W2PJ_test050eye 发表于 2019-11-18 13:53

if 'A2' in json['A']:

JuncoJet 发表于 2019-11-18 13:53

dic.has_key()

zx2000 发表于 2019-11-18 14:07

W2PJ_test050eye 发表于 2019-11-18 13:53
if 'A2' in json['A']:

因为有时候很多键都没有,所以这样判断的话要判断很多遍。。但看来只有这种方法了

fanai 发表于 2019-11-18 14:09

result["A"].get("A1")

zx2000 发表于 2019-11-18 14:10

井右寺 发表于 2019-11-18 13:38
getattr(dict,'key', null)
用这种取值方式,别直接取(emm,错了,这是去对象的)



这个方法确实很实用!!但我不知道怎么取A里面的A1

Vvvvvoid 发表于 2019-11-18 14:28

if 'A2' in result['A']:
    pass:

RemMai 发表于 2019-11-18 14:34

result.get('A').get('A2'),
字典的取值:
result['A'] -> 1,如果字典中没有A这个键值对,那么就报错,推荐使用get.如果没有则为空,当然也可以设定没有的话给个默认值.
如果你一定一定要使用 [] 的话, 可以使用(result['A'])['A2']
页: [1] 2
查看完整版本: Python 的小问题