Skip to main content

Official Python driver for the Factual public API

Project description

# About

This is the Factual supported Python driver for [Factual's public API](http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3).


This API supports queries to Factual's Read, Schema, Crosswalk, and Resolve APIs. Full documentation is available on the Factual website:

* [Read](http://developer.factual.com/display/docs/Factual+Developer+APIs+Version+3): Search the data
* [Schema](http://developer.factual.com/display/docs/Core+API+-+Schema): Get table metadata
* [Crosswalk](http://developer.factual.com/display/docs/Places+API+-+Crosswalk): Get third-party IDs
* [Resolve](http://developer.factual.com/display/docs/Places+API+-+Resolve): Enrich your data and match it against Factual's

This driver is supported via the [Factual Developer Group](https://groups.google.com/group/factual_developers)

### Warning
The driver also contains support for Contribute and Flag requests which are not yet available through the Factual public API. These API features will be enabled in the near future.

# Overview


## Dependencies
[Requests](http://docs.python-requests.org/en/v0.10.7/index.html)

[requests-oauth](https://github.com/maraujop/requests-oauth)


## Basic Design

The driver allows you to create an authenticated handle to Factual. With a Factual handle, you can send queries and get results back.

Queries are created using the Factual handle, which provides a fluent interface to constructing your queries.

## Tables
The Factual API is a generic API that sits over all tables available via the Factual v3 API. Some popular ones:

* Table <tt>global</tt> for international places
* Table <tt>restaurants-us</tt> for US restaurants only
* Table <tt>places</tt> for US places only

## Setup
Obtain an OAuth key and secret from [Factual](http://www.factual.com/devtools/beta)

example.py is provided with the driver as a reference.

To get started, import the Factual python driver module and create a Factual object using your OAuth key and secret.

````python
from factual import *
factual = Factual(KEY, SECRET)
````


## Simple Read Examples

`````python
# Return entities from the Places dataset with names beginning with "starbucks"
factual.table("places").filters({"name":{"$bw":"starbucks"}}).data()
````

`````python
# Return entity names and non-blank websites from the Global dataset, for entities located in Thailand
factual.table("global").select("name,website").filters(
{"$and":[{"country":"TH"}, {"website":{"$blank":"false"}}]}).data()
````

`````python
# Return highly rated U.S. restaurants in Los Angeles with WiFi
factual.table("restaurants-us").filters(
{"$and":[{"locality":"los angeles"},{"rating":{"$gte":4}},{"wifi":"true"}]}).data()
````


## Simple Crosswalk Example

````python
# Concordance information of a place
FACTUAL_ID = "110ace9f-80a7-47d3-9170-e9317624ebd9"
query = factual.crosswalk().factual_id(FACTUAL_ID)
query.data()
````

````python
# Or specify a place with its namespace_id and namespace
SIMPLEGEO_ID = "SG_6XIEi3qehN44LH8m8i86v0"
query = factual.crosswalk().namespace('simplegeo',SIMPLEGEO_ID)
query.data()
````

## Simple Resolve Example

````python
# Returns resolved entities as an array of hashes
query = factual.resolve({"name":"McDonalds","address":"10451 Santa Monica Blvd","region":"CA","postcode":"90025"})
query.data()[1]["resolved"] # true or false
query.data()
````


## Full Documentation
Full documentation is available at http://developer.factual.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

factual-api-1.1.1.tar.gz (12.8 kB view details)

Uploaded Source

File details

Details for the file factual-api-1.1.1.tar.gz.

File metadata

  • Download URL: factual-api-1.1.1.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for factual-api-1.1.1.tar.gz
Algorithm Hash digest
SHA256 fcadf34e1031efc5f3b1245b595ef25d42bb9378e331725886a5c5e05f09a1ec
MD5 7dbc1a57fda15619bb7352d2a629a1aa
BLAKE2b-256 374a6a3e80a9085e61574291924464834ab05a12bfbba86372aee5acaa4ade1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page