加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何知道python中的字典中是否存在某些内容

发布时间:2020-12-20 13:02:44 所属栏目:Python 来源:网络整理
导读:我正在使用API??,其中的信息将是这样的: "id": "17","address": "Av. Nossa Senhora de Copacabana","addressComplement": "A","number": "945","cityId": "2","cityName": "Rio de Janeiro","state": "Rio de Janeiro","uf": "RJ","neighborhood": "Copaca
我正在使用API??,其中的信息将是这样的:

"id": "17","address": "Av. Nossa Senhora de Copacabana","addressComplement": "A","number": "945","cityId": "2","cityName": "Rio de Janeiro","state": "Rio de Janeiro","uf": "RJ","neighborhood": "Copacabana","properties": {},"telephones": [],"geolocation": {
    "lat": -22.97625,"lng": -43.19002
},

但是,在某些记录中,它不包含地理位置字段,因此我必须检查代码中是否存在地理位置.

我试图用hasattr做这个伎俩,但我觉得我做错了.

这是我的代码的一部分:

if hasattr(i,'geolocation'):
    address_lat = i['geolocation']['lat']
    address_lng = i['geolocation']['lng']
else:
    address_lat = 0.0
    address_lng = 0.0

我的想法是,它将检查索引的位置是否存在地理位置内的某些东西.如果有东西,则返回true并进入条件,否则var将收到0.0.

那么,我做错了什么?这是使用hasattr的正确方法吗?

解决方法

它比那简单:

address_lat = i['geolocation']['lat'] if 'geolocation' in i else 0.0
address_lng = i['geolocation']['ing'] if 'geolocation' in i else 0.0

hasattr对于检查对象是否具有属性非常有用.这是一个更具体的情况,您只需要检查一个键是否在字典中.

一个小小的抱怨:我是一个令人困惑的字典名称,乍一看我认为这是一个索引.更好地将其重命名为有意义的东西!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读