如何使用python检查facebook graph api中是否存在某个字段?

时间:2015-04-01 14:35:17

标签: python facebook facebook-graph-api

由于facebook图形API使用JSON格式来显示数据。我希望使用python和facebook Graph API获取我的朋友喜欢的所有书名,但是当我的朋友没有读过任何书时,我的程序会停止。所以请给我一个检查字段是否存在的方法。谢谢。

这是我的代码:

打印他们喜欢的朋友和书籍的名称。 Id和访问令牌由用户提供。

导入请求 导入json

base_url = raw_input("输入id:")

ACCESS_TOKEN = raw_input("粘贴访问令牌:")

base_url =' 6365047697172' ACCESS_TOKEN =' CAACEdEose0cBANCFK1KuoSP6gZCOsmqZC17v1vZCmWrA5FW16pKs7iUoz2ZAIliZCFnIj32rZCVZB7KAh0aa6dqLudLoYZBI6Gs30VlZAY2JP7ZCzM0TpBCneRmKrpDT2PIFxxdScNbZASsKYPIkUXSpPKKsNCemKEuGBZB3uPXNiy4bW0DMKKQeuhQRns5xuXCDYNeVtyh17PZB09lgZBoipW2' base_url =' https://graph.facebook.com/' + base_url

fields =' friends {books,name}' url ='%s?fields =%s& access_token =%s' %\     (base_url,fields,ACCESS_TOKEN,)

def get_books():     """         返回我的时间轴上的帖子列表     """

parameters = {'access_token': ACCESS_TOKEN}
r = requests.get(url)
result = json.loads(r.text)
friends =  result["friends"]

frnd_data = friends["data"]
for frnd_name in frnd_data:
    print frnd_name['name']
    frnd_book = frnd_name['books'] #error when there is no field name books
    f_b_name = frnd_book["data"]
    for b_name in f_b_name:
        print b_name['name']

get_books()

1 个答案:

答案 0 :(得分:0)

如果在python中使用json模块,方法load(或loads)会将json映射到字典。然后你可以像对待字典一样对待它,这意味着你可以使用以下代码来询问它是否包含值

if field in json:
    ...

我希望有所帮助。