如何按类别和/或位置解析Facebook页面的FQL响应? (Python)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何按类别和/或位置解析Facebook页面的FQL响应? (Python),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2460字,纯文字阅读大概需要4分钟。
内容图文
长时间听众,第一次来电…
我从Facebook Open Graph API查询得到了很好的结果:
fbtest = graph.request("/fql", {"q": "SELECT name, page_id, categories, location
FROM page WHERE page_id IN (SELECT page_id FROM page_fan WHERE uid=me())"})
虽然我已经在Learning Python the Hard Way年采取了Zed的伟大课程,但我仍然是绿色的并且在这些方面需要帮助:
>我喜欢只请求与某些类别相匹配的页面,例如“本地商家”,但因为“类别”是一个列表(并且它没有在FB表中编入索引),我很难搞清楚它;我认为这是不可能的.
>所以我找回了一个人喜欢的所有页面,我需要在之后对其进行整理.这就是我在做的事情:
如何操作结果(按类别和/或位置过滤,这两个列表)并以可读格式将它们发送到我的fbtest.html文件?
目前我只是在HTML中呈现fbtest的输出;
self.render("test.html", fbtest=fbtest)
这很难看:
fbtest: {u’data’: [{u’page_id’: 8495417058L, u’name’: u’Mat Zo’,
u’categories’: [], u’location’: {u’street’: u”, u’zip’: u”}},
{u’page_id’: 9980651805L, u’name’: u’deadmau5′, u’categories’: [],
u’location’: {u’street’: u”, u’zip’: u”}}, {u’page_id’: 6209079710L,
u’name’: u’Ultra Records’, u’categories’: [], u’location’: {u’street’:
u”, u’zip’: u”}}, {u’page_id’: 12609724042L, u’name’: u’Oceanlab’,
u’categories’: [], u’location’: {u’street’: u”, u’zip’: u”}}, etc
一旦我尝试操作列表,我就可以发送一个结果(比如匹配name =“thesocialbusiness”的页面),但不是我正在寻找的一系列结果.我的愿景是拥有一个很好的图画书缩略图视图,按页面分类和排序.
谢谢,节日快乐,
-詹姆士
解决方法:
如果我理解正确,你只是想在这里过滤最终结果?如果还没有,请继续将json字符串转换为python对象
import json
resp = json.loads(fql_resp)
data = resp['data']
负载代表负载串,这是您将从服务中获得的.从这里你有几个选择.如果您事先知道您想要的类别,可以选择使用内置过滤器.以下面的数据集为例
objs = [{'_id': 1, 'categories': ['a', 'b', 'c']},
{'_id': 2, 'categories': ['b']},
{'_id': 3, 'categories': ['c']}]
您可以过滤仅包含b类别的结果
def f(obj):
return 'b' in obj['categories']
filtered_objs = filter(f, objs)
print(filtered_objs)
# outputs:
# [{'_id': 1, 'categories': ['a', 'b', 'c']},
# {'_id': 2, 'categories': ['b']}]
如果你想要一个可重用的函数来过滤不同的类别,你可以做类似的事情
def filter_objs(objs, category):
result = []
for obj in objs:
if category in obj['categories']:
result.append(category)
return result
filtered_objs = filter_objs(objs, 'b')
最后,您可以使用列表推导,根据需要内联或在filter_objs函数中使用.
filtered_objs = [obj for obj in objs if 'b' in obj['categories']]
所以有很多方法可以过滤结果,但第一步是使用json.loads
内容总结
以上是互联网集市为您收集整理的如何按类别和/或位置解析Facebook页面的FQL响应? (Python)全部内容,希望文章能够帮你解决如何按类别和/或位置解析Facebook页面的FQL响应? (Python)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。