Python如何从字符串生成json并调用api?

时间:2017-01-11 07:54:01

标签: python json api facebook-graph-api

我有一个如下所示的数据列表 -

product-0
product-1
product-10
product-100
product-1000
product-10000
product-100000

但数据可能超过100个。

我想让api调用facebook graph api。电话看起来如下 -

fb_graph_url = api_endpoint+product_catalog_id+"/products?fields=image_url,retailer_id,id&filter={'or':[{'retailer_id':{'eq':'product-0'}},{'retailer_id':{'eq':'product-1'}}]}&access_token="+access_token

您在api电话product-0product-1中看到的是上面列表中的数据。

为了在一次通话中获取所有数据,我在api调用中使用过滤器。

我想让json看起来像[{'retailer_id':{'eq':'product-0'}},{'retailer_id':{'eq':'product-1'}}]。 现在它只包含两种产品。我想用上述所有列表数据来称呼这个api。

请帮忙。

1 个答案:

答案 0 :(得分:0)

我在以下功能的帮助下解决了我的问题 -

def call_fb_api(ids):
api_endpoint = "https://graph.facebook.com/v2.8/"
filter_param = "filter={'retailer_id':{'is_any':[" + ','.join("'{0}'".format(w.strip()) for w in ids) + "]}}"
fields_param = "fields=image_url,retailer_id"
limit_param = "limit=1000"
token_param = "access_token=" + access_token
fb_graph_url = api_endpoint + product_catalog_id + "/products?" + limit_param + "&" + fields_param + "&" + filter_param + "&" + token_param
response = requests.get(fb_graph_url).json()
return response['data'] 

感谢大家的帮助。