首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yelp -如何跳过没有特定密钥的业务

Yelp -如何跳过没有特定密钥的业务
EN

Stack Overflow用户
提问于 2014-07-07 05:36:46
回答 1查看 423关注 0票数 0

Python 2.7

我正试图从Yelp中获取某些地区餐厅的“名称”、“url”、“display_address”和“电话”密钥。

我的代码打印了我正在寻找的信息,直到它击中没有“电话”键的餐馆,因为它返回了这个错误:

代码语言:javascript
复制
> Traceback (most recent call last):   File "/Users/git-folder/api2.py",
> line 175, in <module>
>     print yelp_query(zipcode[i])   File "/Users/git-folder/api2.py", line 166, in yelp_query
>     phone = business[i]["phone"] KeyError: 'phone'

我的代码:

代码语言:javascript
复制
def yelp_query(zip_code):
    client = YelpClient(yelp_keys = keys)
    result_json = client.search_by_location(
    location = str(zip_code), term = 'BBQ',
    sort = YelpClient.SortType.BEST_MATCHED, radius=2)
    business = result_json["businesses"]


    for i in range(0,len(business)):
        n = business[i]["name"]
        add = str(business[i]["location"]["display_address"]).replace("[","").replace("]","").replace("u'","").replace("'","")
        url = business[i]["url"]
        phone = business[i]["phone"]
        print n, ";",url,";",add,";",phone

如果没有特定业务的电话键,而不是停下来给我这个错误,我如何写一个' if‘语句来打印'none’呢?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-07 06:27:38

当您使用一个字典并且不确定它是否包含某个键时,您可以使用get()方法并指定一个默认值。在您的情况下,由于您希望在密钥不存在时返回None,所以可以在不使用第二个参数的情况下使用get()调用。默认情况下,没有第二个参数的get()返回None。这就是你需要的:

代码语言:javascript
复制
n = business[i].get('phone', None)

如果“电话”键不存在,则将n分配给None,您以后可以使用if n:进行检查。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24603638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档