コンテンツにスキップ

取得して更新

ipynbFile notionapi_01__取得して更新.ipynb

In [1]:

1
from notion_client import Client

In [2]:

1
2
3
4
5
# Clientを作る TOKENは事前にページで作成しておく
with open("./token.txt",'r') as f:
    TOKEN = f.readline()

notion = Client(auth=TOKEN)

In [3]:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# NotionのページのURLから、検索したいDatabaseのIDを取得して
# DB内のDataを取得する
# Filterを指定したい場合は、Jsonで条件を指定できる。
# property で名前、PropertyType: {'条件':式}
results = notion.databases.query(
        **{
            'database_id' : 'd6f7115afc4549a092dede3a56a24f90',
            "filter": {
                "property": "Date",
                "date": {
                    "equals": "2022-01-12",
                },
            }
        }
    )

In [67]:

1
2
3
4
# database以下のPagesを取得できるので、取得したいPropertyを取得できる
for i in results['results']:
    print(i['properties']['WorkTime'])
    print(i['properties']['Date'])

Success

1
2
{'id': 'CBL%3B', 'type': 'date', 'date': {'start': '2021-11-06T00:00:00.000+09:00', 'end': '2021-11-06T00:00:00.000+09:00', 'time_zone': None}}
{'id': 'pWX%7C', 'type': 'date', 'date': {'start': '2022-01-12', 'end': None, 'time_zone': None}}

In [39]:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 検索したDBのあるPageを更新したい
# page_id は、 query したときの id から - をなくしたもの。
notion.pages.update(**{
    'page_id': results['results'][0]['id'].replace("-",""),
    "properties": {
                "Name": {
                    "title": [
                        {
                            "text": {
                                "content": "hoge"
                            }
                        }
                    ]
                }
            }
    }
)

Success

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{'object': 'page',
 'id': '375eed25-949b-40a3-8927-8de84caee787',
 'created_time': '2021-11-05T15:41:00.000Z',
 'last_edited_time': '2022-01-11T15:33:00.000Z',
 'cover': None,
 'icon': None,
 'parent': {'type': 'database_id',
  'database_id': 'd6f7115a-fc45-49a0-92de-de3a56a24f90'},
 'archived': False,
 'properties': {'WorkTime': {'id': 'CBL%3B',
   'type': 'date',
   'date': {'start': '2021-11-06T00:00:00.000+09:00',
    'end': '2021-11-06T00:00:00.000+09:00',
    'time_zone': None}},
  'Name': {'id': 'title',
   'type': 'title',
   'title': [{'type': 'text',
     'text': {'content': 'hoge', 'link': None},
     'annotations': {'bold': False,
      'italic': False,
      'strikethrough': False,
      'underline': False,
      'code': False,
      'color': 'default'},
     'plain_text': 'hoge',
     'href': None}]}},
 'url': 'https://www.notion.so/hoge-375eed25949b40a389278de84caee787'}

In [5]:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
notion.pages.update(**{
    'page_id': results['results'][0]['id'].replace("-",""),
    "properties": {
                "WorkTime": {
                    'date':{
                        'start': '2021-11-13T00:00:00.000+09:00'
                    }
                }
            }
    }
)

Success

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{'object': 'page',
 'id': '375eed25-949b-40a3-8927-8de84caee787',
 'created_time': '2021-11-05T15:41:00.000Z',
 'last_edited_time': '2022-01-11T16:36:00.000Z',
 'cover': None,
 'icon': None,
 'parent': {'type': 'database_id',
  'database_id': 'd6f7115a-fc45-49a0-92de-de3a56a24f90'},
 'archived': False,
 'properties': {'WorkTime': {'id': 'CBL%3B',
   'type': 'date',
   'date': {'start': '2021-11-13T00:00:00.000+09:00',
    'end': None,
    'time_zone': None}},
  'Date': {'id': 'pWX%7C',
   'type': 'date',
   'date': {'start': '2022-01-12', 'end': None, 'time_zone': None}},
  'Name': {'id': 'title',
   'type': 'title',
   'title': [{'type': 'text',
     'text': {'content': 'hoge', 'link': None},
     'annotations': {'bold': False,
      'italic': False,
      'strikethrough': False,
      'underline': False,
      'code': False,
      'color': 'default'},
     'plain_text': 'hoge',
     'href': None}]}},
 'url': 'https://www.notion.so/hoge-375eed25949b40a389278de84caee787'}