notion-py를 사용하여 캘린더 만들기
2021. 8. 8. 00:12ㆍ분석 Python/구현 및 자료
728x90
다들 테이블 만드는 것은 있는데, 캘린더 만드는 것은 없는 것 같아서 글을 적어보고자 한다.
목차
notion-py 설치
https://github.com/jamalex/notion-py
pip3 install notion
notion token 값 얻기
아래 글을 참고해주시면 된다.
간단하게 크롬에서 notion 페이지 들어가서
F12 -> Application -> Cookies -> notion.com -> token_v2에 있는 값을 가져오면 된다.
https://minimin2.tistory.com/99
소스 설명
token_v2 = ###
url = ### (적용하고자 하는 노션 위치)
client = NotionClient(token_v2 = token_v2)
page = client.get_block(url)
## childern page 하나 만들기
def get_collection_schema():
return {
"title" : {"name" : "content", "type" : "title"}, ## 중요
"day" : {"name" : "day", "type" : "date"}, ## 중요
"person" : {"name" : "person", "type" : "text"},
}
child_page = page.children.add_new(CollectionViewPageBlock)
child_page.collection = client.get_collection(
client.create_record('collection', parent=child_page, schema=get_collection_schema())
)
child_page.title = "schedule"
일단 스키마를 적용해야 하는데, 반드시 해야하는 것은 title, day의 타입을 정해야 하고, title이라고 명시를 해줘야 한다.
그다음에 한 줄을 추가해보자
row = child_page.collection.add_row()
row.set_property('title', "content!")
row.set_property('day', datetime.strptime("2021-08-08",'%Y-%m-%d'))
row.set_property('person', "나,너,우리")
그리고 view_type을 table이 아닌 calendar로 하면 된다.
view = child_page.views.add_new(view_type='calendar', )
그러면 자동으로 calendar가 생성된다!
ToDoList
찾아보고 있지만, 못한 기능은 다음과 같다.
- multi_select
- select
- property 열기
이것들에 대해서 알고 있다면, 지식 전수 좀 부탁드리겠습니다...
Reference
Content | URL |
notion-py를 사용하여 자동으로 페이지와 테이블 만들기 | https://medium.com/@leejukyung/notion-py%EB%A1%9C-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%ED%8E%98%EC%9D%B4%EC%A7%80%EC%99%80-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0-5b685e8c8a5d |
token 얻기 | https://minimin2.tistory.com/99 |
728x90
'분석 Python > 구현 및 자료' 카테고리의 다른 글
선형 Kalman Filtering 알아보기 (0) | 2021.10.08 |
---|---|
Python) 회귀 분석 기본 사용법 정리(scikit-learn, statsmodels) (2) | 2021.08.11 |
Python) Yield 에 대해서 알아보기 (0) | 2021.08.07 |
or-tools) 제한 조건 만족하는 특정 인자에 대한 경우의 수 찾기 (0) | 2021.08.01 |
pycaret 2.3.1) tune_model hyperopt example (0) | 2021.06.20 |