pytone

pytoneはKintone にアクセスするためのPythonライブラリです。
ZENKが開発しOSSとして公開しています。

from pytone import kintone

kintone = kintone.Kintone('APIトークン', 'サブドメイン', 'アプリID')

Features

pytoneはKintoneをPythonで操作するためのライブラリです。KintoneAPI の以下に対応しています

Requirement

Python3系で動作し、以下のライブラリに依存します。

Installation

pip install requests
pip install zenkPytone
Downloads

Usage

レコードの取得(一括)

#呼び出し方
kintone.select(where=where,order=order,limti=limit,fields=fields)
"""
引数は省略可能です

・whereを省略した場合、アプリの全レコードを取得します
・レコードのソートをする場合はwhereには書かず、orderに記述してください
・limitを指定する場合はwhereには書かず、limitに数値を記述してください
・fieldsを省略した場合、全フィールドを取得します
・idとrevisionは指定していなくても取得します
・対象のレコードをすべて取得します。(offset上限対応)
"""

#例
where    = 'フィールドコート1 = "value"'
order    = 'order by $id asc'
limit    = 500
fields   = ['フィールドコート1','フィールドコート2','サブテーブル']
response = kintone.select(where=where,order=order,limit=limit,fields=fields)

"""
レスポンスの例
[
    {
        '$id':1,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '1111111',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '1111112',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    },
    {
        '$id':2,
        'revision':1,
        'フィールドコート1':'value',
        'フィールドコート2':'value',
        'サブテーブル':
        [
            {
                'id': '2222222',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            },
            {
                'id': '2222223',   #テーブルの行ID
                'フィールドコート1':'value',
                'フィールドコート2':'value',
            }
        ]
    }
]

"""

レコードの取得(一件)

#呼び出し方
#引数に取得するレコードIDを指定します
kintone.selectRec(recordID)

#例
recordID = 1
response = kintone.selectRec(recordID)

"""
レスポンスの例
{
    '$id':1,
    'revision':1,
    'フィールドコート1':'value',
    'フィールドコート2':'value',
    'サブテーブル':
    [
        {
            'id': '1111111',   #テーブルの行ID
            'フィールドコート1':'value',
            'フィールドコート2':'value',
        },
        {
            'id': '1111112',   #テーブルの行ID
            'フィールドコート1':'value',
            'フィールドコート2':'value',
        }
    ],
}

"""

レコードの登録(一括)

#呼び出し方
#insert関数の引数はリスト型でなくてはいけません
kintone.insert(records)

#例
records = [
    {
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        'チェックボックス':
            [
                'sample1',
                'sample2'
            ],
        'ユーザー選択':
            [
                'ログイン名1',
                'ログイン名2'
            ],
        'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
    },
    {
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        ............
    }
]

response = kintone.insert(records)

"""
レスポンスの例
{
    'ids':['1','2'],
    'revisions':['1','1']
}
"""

レコードの登録(一件)

#呼び出し方
#insertRec関数の引数は辞書型でなくてはいけません
kintone.insertRec(record)

#例
record = {
    '文字列__1行':'value',
    '文字列__複数行':'value\nvalue2',
    'チェックボックス':
        [
            'sample1',
            'sample2'
        ],
    'ユーザー選択':
        [
            'ログイン名1',
            'ログイン名2'
        ],
    'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
}

response = kintone.insertRec(record)
"""
レスポンスの例
{
    'id': '1',
    'revision': '1'
}
"""

レコードの更新(一括)

#呼び出し方
#update関数の引数はリスト型でなくてはいけません
kintone.update(records)

"""
登録するレコードにidもしくはupdateKeyを指定する必要があります
"""

#例
records = [
    {
        '$id':'1',
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        'チェックボックス':
            [
                'sample1',
                'sample2'
            ],
        'ユーザー選択':
            [
                'ログイン名1',
                'ログイン名2'
            ],
        'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
        ]
    },
    {
        'updateKey':
        {
            'field':'重複禁止のフィールドコート',
            'value':'value'
        },
        '文字列__1行':'value',
        '文字列__複数行':'value\nvalue2',
        ............
    }
]

response = kintone.update(records)
"""
レスポンスの例
{
    'records':[
        {
            'id':'1',
            'revision':'2'
        },
        {
            'id':'2',
            'revision':'2'
        }
    ]
}
"""

レコードの更新(一件)

#呼び出し方
#updateRec関数の引数は辞書型でなくてはいけません
kintone.updateRec(record)

"""
登録するレコードにidもしくはupdateKeyを指定する必要があります
"""
#例

record = {
    '$id':'1',
    '文字列__1行':'value',
    '文字列__複数行':'value\nvalue2',
    'チェックボックス':
        [
            'sample1',
            'sample2'
        ],
    'ユーザー選択':
        [
            'ログイン名1',
            'ログイン名2'
        ],
    'サブテーブル':
        [
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            },
            {
                '文字列__1行':'value',
                '文字列__複数行':'value\nvalue2',
                'チェックボックス':
                    [
                        'sample1',
                        'sample2'
                    ]
            }
}

response = kintone.updateRec(record)
"""
レスポンスの例
{
    'revision': '2'
}
"""

レコードの削除

#呼び出し方
#delete関数の引数はリスト型でなくてはいけません
kintone.delete(recordIDs)

#例

recordIDs = ['1','2','3']

response = kintone.delete(recordIDs)
"""
レスポンスの例
{}
"""
#リクエスト成功時は空の辞書が戻ってきます

Author

  • Author
    Masashi Tsuruya
  • Organizationr
    株式会社ゼンク

License

“pytone” is under MIT license .