用于事实公共api的官方python驱动程序

factual-api的Python项目详细描述


#关于

这是[事实的公共api](http://developer.factal.com)的事实支持的python驱动程序。

actual
factual=factual("您的密钥"、"您的秘密")
````
如果您还没有factual api密钥,[它是免费的,而且很容易获得](https://www.factal.com/api key s/request)。

schema
使用schema api调用来确定哪些字段可用,这些字段的数据类型ds,以及可以对每个字段执行哪些操作(排序、搜索、写入、切面)。

y事实表中的数据,包括全文搜索、参数筛选和地理位置筛选。

分类/
*placerank,排序:http://developer.factal.com/search placerank and boost/

`` python
places=factal.table('places')

全文搜索:
places=places.search('century city mall')。包括count(true)
data=places=places.data()
print('显示{}/{}行:{}'。格式(places_with_count.included_rows(),places_with_count.total_row_count(),data))


=places.filters({'category嫒id':{'$includes':347}).data()
打印(数据)

搜索餐厅或酒吧
数据=地点.filters({'category嫒id':{'$includes嫒any':[312347]}).data()
打印(数据)

搜索娱乐场所,但不搜索成人娱乐场所
数据=地点.filters({'$和':[{category{id':{'$includes':317}},{category{'$includes':318}}]})。data()
打印(数据)

les或santa monica
data=places.search('starbucks').filters({'$or':[{'locality':{'$eq':'los angeles'},{'locality':{'$eq':'santa monica'}}).data()
print(data)

paging:
搜索洛杉矶或圣莫尼卡的星巴克(结果的第二页):
data=places.search('starbucks').filters({'$or':[{'locality':{'$eq':'los angeles'},{'locality':{'$eq':'santa monica'}]}).offset(20).limit(20).data()
print(data)

geo filter:
factal office附近的咖啡
来自factal.utils import circle
data=places.search('coffee').geo(circle(34.058583,-118.416582,1000))。data()
打印(数据)

存在阈值:
更喜欢精度而不是回忆:
数据=位置。阈值('confident')。data()
打印(数据)

int(data)
````

facets
使用facets调用获取按指定字段分组的汇总计数。

full documentation:http://developer.factual.com/api docs/``facets
``python
ts('places')。search('starbucks')。filters({'region':'c a')。select('locality')。min廑count(20)。limit(5)。data()
print(data)
````

resolve
使用resolve生成与现有位置属性集基于信任的匹配。

完整文档:http://developer.factual.com/api docs/resolve
`` python
resovle from name and address info
data=factual.resol解析ve('places',{'name':'mcdonalds','address':'10451 santa monica blvd','region':'ca','postcode':'90025'})。data()
打印(数据)

r/>```

nica blvd,'region':'ca,'postcode':'90025','country':'us}。data()
print(data)
`````

crosswalk
crosswalk包含实体之间的第三方映射。

完整文档:http://developer.factal.com/places crosswalk/

``python
并且只显示yelp中的实体:
data=factal.crosswalk().filters({factal戋id':'3b9e2b46-4961-4a31-b90a-b5e0aed2a45e','namespace':'yelp'}).data()
print(data)
```````
``python
``查询foursquare中的实体:
data=factal.crosswalk().filters({namespace':'foursquare,'namespace_id':'4ae4df6df964a520019f21e3'}。data()
print(data)
````

此资源用于补充全局位置并将实用程序添加到任何与地理相关的内容。

``python
.select('contextname,factual嫒id').data()
print(data)
stors':{'$包括':'08649c86-8f76-11e1-848f-cfd5b3ef515'},{'country':{'$eq':'us'},{'placetype':{'$eq':'locality'}})。选择('contextname,factual嫒id')。data()
打印(数据)
````

提交
提交新数据,或更新现有数据。submit作为一个"upsert"行为,意味着factual将首先尝试将所提供的数据与任何现有位置匹配。注意:对于以后的任何支持请求,您应该始终存储响应返回的*commit id*。


完整文档:http://developer.factal.com/api docs/submit


>放置特定的写api文档:http://developer.factal.com/write api/

`` python
值={
"名称":"事实上的",
"地址":"1999星光大道",
"地址扩展":"34楼",
"地点":"洛杉矶",
"地区":"CA",
"邮政编码":"90067",
"国家":"美国",
"纬度":34.058743,
"经度":118.41694,
"类别ID":[209213],
"小时":"周一上午11:30-下午2:00周二星期五上午11:30-下午2:00,下午5:30-晚上9:00周六周日闭馆",
}
resp=事实。提交("美国沙盒",值=值)。用户("用户ID")。write()
打印(resp)
`````

编辑现有行:
``python
resp=事实。提交("美国沙箱"、"4E4A14FE-988C-4F03-A8E7-0EFC806D14FE-988C-4F03-A8E7-0EFC806d0A7F’,{'address‘扩展’地址‘35楼’})、用户('a‘用户id’).write()
print(resp)
```





















/>标记一个与另一个地方重复的地方。应持久化的*首选*实体作为get参数传递。
`` python
resp=factal.flag('us-sandbox','4e4a14fe-988c-4f03-a8e7-0efc806d0a7f')。重复(首选='9d676355-6c74-4cf6-8c4a-03fdaaa2d66a')。用户('a_用户id')。write()
打印(resp)
````


flag a place that已关闭。
`` python
resp=factual.flag('us-sandbox','4e4a14fe-988c-4f03-a8e7-0efc806d0a7f')。problem('closed')。comment('was shut down when i go there yed.')。user('a_user_id')。write()
print(resp)
`````

标记一个已重新定位的位置,这样它将重新录制去新的地方。*preferred*实体(当前位置)作为get参数传递。旧位置在URL中标识。
``python
resp=factact.flag('us-sandbox','4e4a14fe4a14fe-988c-4f03-a8e7-0efc806d0a7f').relocate(preferred='9d676676355-6c74-4cf6-8c4a-03fdaaa2d66a6a').user('a用户id').write()
print(resp)
`````


信号应该重置现有属性的值。

r/>
boost
boost api用于通知搜索结果中应该显示较高的行。

完整文档:http://developer.factal.com/api docs/boost
`` python
resp=factal.boost('us-sandbox','4e4a14fe-988c-4f03-a8e7-0efc806d0a7f',q='local business data')。用户('a_u user_u id').write()
print(resp)
````

multi
通过一个http连接同时发出三个请求。注意:虽然请求是并行执行的,但在所有包含的请求完成之前,不会返回最终响应。因此,如果需要非阻塞行为,就不应该使用multi。还要注意,如果合适的话,包含的响应可能包括一个api错误消息。

.geo(圆(34.041195,-118.3315181000))
面查询=事实面('places').search('starbucks').filters({'region':'ca').select('locality').min计数(20)。限制(5)
原始响应=事实。多个({'read':读取查询,'facets':面查询})
查询结果=json.loads(原始响应)
打印(queryy_u results['read'])
print(query戋results['facets'])
`````


在发送给factal的请求中,您可以获得由查询创建的url:
``python
q=factal.table('places').search('starbucks').filters({'region':'ca').limit(10)
print(q.get戋url())
````


``` python
此驱动程序中的ific错误,请在github repo中提交问题。请尽可能具体,包括:

*您在发现错误时做了什么
*您希望发生什么
*实际发生了什么
*详细的堆栈跟踪和/或行号

我们的from factal的api(或者您只是不确定发生了什么),请通过[事实支持网站](http://support.factal.com/factal)与我们联系。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
有没有一种方法可以将不同的java web应用程序组合到一个web应用程序(war)中而不相互影响?   java一次屏蔽两位   java如何在多个类上初始化元素?   java在后台服务中处理通知或使用GCM(或其他推送通知服务)   java从const方法调用JNI函数   javascript如何使用函数/方法返回?   Java优化:声明类变量与使用临时变量   java字符算术基数8 vs基数10   Java流收集要存储的对象列表   swing我正在用Java中的keyListener制作一个精灵移动器   在Gradle构建脚本中使用Scala(或java)方法   java Android Mediaplayer下一步按钮不起作用   Java Sound API在播放音频文件后将其锁定   java将变量从外部类传递到内部类的最佳方法   使用play framework的博客web应用程序出现java逻辑错误   java我们可以在Spring批处理中处理大型zip文件吗?   java如何检查JTable的选定行的特定列中的值是否已经在JList中?