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":
python实现bi导入notion
最新推荐文章于 2024-04-25 09:47:43 发布