python实现bi导入notion

import requests,json
import threading
import time
import sys

class myThread (threading.Thread):
    def __init__(self, name, delay, list, base_url, databaseID, token, col_type_dict, mode, title_pageid_dict, title):
        threading.Thread.__init__(self)
        # self.threadID = threadID
        self.name = name
        self.delay = delay
        self.list = list
        self.base_url = base_url
        self.databaseID = databaseID
        self.token = token
        self.col_type_dict = col_type_dict
        self.mode = mode
        self.title_pageid_dict = title_pageid_dict
        self.title = title

    def run(self):
        print ("开始线程:" + self.name)
        if self.mode == "merge":
            for i in self.list:
                if i[self.title] in self.title_pageid_dict.keys():
                    update_page(self.name, self.delay, i, self.base_url, self.title_pageid_dict[i[self.title]], self.token, self.col_type_dict)
                else:
                    create_page(self.name, self.delay, i, self.base_url, self.databaseID, self.token, self.col_type_dict)
        elif self.mode == "append":
            for i in self.list:
                create_page(self.name, self.delay, i, self.base_url, self.databaseID, self.token, self.col_type_dict)
        elif self.mode == "overwrite":
            for i in self.list:
                create_page(self.name, self.delay, i, self.base_url, self.databaseID, self.token, self.col_type_dict)
        else:
            print("你输入的模式错误,请输入merge或者append或者overwrite")
        print ("退出线程:" + self.name)

def update_database(databaseID,base_url,token,col_type_dict):
    url = base_url + "databases/" + databaseID

    headers = {
        "Accept": "application/json",
        "Notion-Version": "2022-02-22",
        "Content-Type": "application/json",
        "Authorization": "Bearer %s" %token
    }
    payload = {}
    payload["properties"] = {}
    for key, value in col_type_dict.items():

        if value == "Date" or value == "DateTimeWithLocalTZ" or value == "DateTime":
            payload["properties"][key] = {
                "date": {}
            }
        elif value == "BigInteger" or value == "Decimal":
            payload["properties"][key] = {
                "number": {
                    "format": "number"
                }
            }
        elif value == "Text":
            payload["properties"][key] = {
                "rich_text": {}
            }
        elif value == "Title":
            payload["properties"][key] = {
                "title": {}
            }
        else:
            payload["properties"][key] = {
                "rich_text": {}
            }

    response = requests.request("PATCH", url, json=payload, headers=headers)
    print(response.text)

def create_database(base_url,pageID,token,col_type_dict):
    payload = {"parent": {"type": "page_id","page_id": pageID}}
    payload["properties"] = {}
    for key,value in col_type_dict.items():

        if value == "Date" or value == "DateTimeWithLocalTZ" or value == "DateTime":
         
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太生气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值