In [1]:
import requests
import json

In [2]:
#給使用anaconda環境的import module方式
import sys
new_path = u'D:\python.data\hcos\hcos_airtable' #local module path
sys.path.append(new_path)

import airtable as at

In [3]:
base = at.Airtable('appNcYtL8fFZa1STA', 'keyekU4v5kBu8fvzN') #base id, api_key
base.get('iris','rec06Uv00gLHpXCsK') #table name, record id


Out[3]:
OrderedDict([('id', 'rec06Uv00gLHpXCsK'),
             ('fields',
              OrderedDict([('花萼長度', '7'),
                           ('花萼寬度', '3.2'),
                           ('花瓣長度', '4.7'),
                           ('花瓣寬度', '1.4'),
                           ('屬種', 'Iris-versicolor')])),
             ('createdTime', '2017-10-07T07:32:40.000Z')])

In [4]:
base.airtable_url


Out[4]:
'https://api.airtable.com/v0/'

In [5]:
base.base_url


Out[5]:
'https://api.airtable.com/v0/appNcYtL8fFZa1STA'

In [6]:
payload = {
    "花萼長度": "9.9",
    "花萼寬度": "9.9",
    "花瓣長度": "9.9",
    "花瓣寬度": "9.9",
    "屬種": "new type"
  }

In [7]:
new_rec = base.create('iris',payload)
new_rec


Out[7]:
OrderedDict([('id', 'recbkHFMXL7Vlgz0u'),
             ('fields',
              OrderedDict([('花萼長度', '9.9'),
                           ('花萼寬度', '9.9'),
                           ('花瓣長度', '9.9'),
                           ('花瓣寬度', '9.9'),
                           ('屬種', 'new type')])),
             ('createdTime', '2017-10-10T14:21:02.138Z')])

In [8]:
update_rec_id = new_rec['id']

update_data = {"花萼長度": "10.9",
               "花萼寬度": "10.9"}
base.update('iris', update_rec_id, update_data)


Out[8]:
OrderedDict([('id', 'recbkHFMXL7Vlgz0u'),
             ('fields',
              OrderedDict([('花萼長度', '10.9'),
                           ('花萼寬度', '10.9'),
                           ('花瓣長度', '9.9'),
                           ('花瓣寬度', '9.9'),
                           ('屬種', 'new type')])),
             ('createdTime', '2017-10-10T14:21:02.138Z')])

In [9]:
update_all_data = {
    "花萼長度": "11.1",
    "花萼寬度": "11.1",
    "花瓣長度": "11.1",
    "花瓣寬度": "11.1",
    "屬種": "new type"
  }
base.update_all('iris', update_rec_id, update_all_data)


Out[9]:
OrderedDict([('id', 'recbkHFMXL7Vlgz0u'),
             ('fields',
              OrderedDict([('花萼長度', '11.1'),
                           ('花萼寬度', '11.1'),
                           ('花瓣長度', '11.1'),
                           ('花瓣寬度', '11.1'),
                           ('屬種', 'new type')])),
             ('createdTime', '2017-10-10T14:21:02.138Z')])

In [10]:
base.get(table_name='iris',filter_by_formula='{屬種} = "new type"')


Out[10]:
OrderedDict([('records',
              [OrderedDict([('id', 'rec7FyUfaCBL944p7'),
                            ('fields',
                             OrderedDict([('花萼長度', '11'),
                                          ('花萼寬度', '11'),
                                          ('花瓣長度', '11'),
                                          ('花瓣寬度', '11'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-09T02:01:27.000Z')]),
               OrderedDict([('id', 'recJudcyCvGAkisvb'),
                            ('fields',
                             OrderedDict([('花萼長度', '9.9'),
                                          ('花萼寬度', '9.9'),
                                          ('花瓣長度', '9.9'),
                                          ('花瓣寬度', '9.9'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-10T14:04:53.842Z')]),
               OrderedDict([('id', 'recKB7QS3oKG625zZ'),
                            ('fields',
                             OrderedDict([('花萼長度', '11.1'),
                                          ('花萼寬度', '11.1'),
                                          ('花瓣長度', '11.1'),
                                          ('花瓣寬度', '11.1'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-10T14:07:54.625Z')]),
               OrderedDict([('id', 'recTuDUys33tGHrTd'),
                            ('fields',
                             OrderedDict([('花萼長度', '9.9'),
                                          ('花萼寬度', '9.9'),
                                          ('花瓣長度', '9.9'),
                                          ('花瓣寬度', '9.9'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-09T02:01:11.000Z')]),
               OrderedDict([('id', 'recbkHFMXL7Vlgz0u'),
                            ('fields',
                             OrderedDict([('花萼長度', '11.1'),
                                          ('花萼寬度', '11.1'),
                                          ('花瓣長度', '11.1'),
                                          ('花瓣寬度', '11.1'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-10T14:21:02.138Z')]),
               OrderedDict([('id', 'recqZBqCVDNeEifXv'),
                            ('fields',
                             OrderedDict([('花萼長度', '9.9'),
                                          ('花萼寬度', '9.9'),
                                          ('花瓣長度', '9.9'),
                                          ('花瓣寬度', '9.9'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-09T04:31:19.000Z')]),
               OrderedDict([('id', 'recwk7bDWXc4Dazkl'),
                            ('fields',
                             OrderedDict([('花萼長度', '9.9'),
                                          ('花萼寬度', '9.9'),
                                          ('花瓣長度', '9.9'),
                                          ('花瓣寬度', '9.9'),
                                          ('屬種', 'new type')])),
                            ('createdTime', '2017-10-09T05:38:33.000Z')])])])

In [11]:
it_obj = base.iterate('iris',batch_size=2,filter_by_formula='{屬種} = "new type"')

In [12]:
for record in it_obj:
    print(record['id'])


rec7FyUfaCBL944p7
recJudcyCvGAkisvb
recKB7QS3oKG625zZ
recTuDUys33tGHrTd
recbkHFMXL7Vlgz0u
recqZBqCVDNeEifXv
recwk7bDWXc4Dazkl

In [13]:
base.delete('iris', update_rec_id)


Out[13]:
OrderedDict([('deleted', True), ('id', 'recbkHFMXL7Vlgz0u')])

In [ ]: