Add your description here
Project description
NotionHelper
NotionHelper is a Python library that provides a convenient interface for interacting with the Notion API. It simplifies common tasks such as managing databases, pages, and file uploads, allowing you to integrate Notion's powerful features into your applications with ease.
For help constructing the JSON for the properties, use the Notion API - JSON Builder Streamlit app.
Features
- Synchronous Operations: Uses
notion-clientandrequestsfor straightforward API interactions. - Database Management: Create, query, and retrieve Notion databases.
- Page Operations: Add new pages to databases and append content to existing pages.
- File Handling: Upload files and attach them to pages or page properties.
- Pandas Integration: Convert Notion database pages into a Pandas DataFrame for easy data manipulation.
Installation
To install NotionHelper, you can use pip:
pip install notionhelper
This will also install all the necessary dependencies, including notion-client, pandas, and requests.
Authentication
To use the Notion API, you need to create an integration and obtain an integration token.
- Create an Integration: Go to My Integrations and create a new integration.
- Get the Token: Copy the "Internal Integration Token".
- Share with a Page/Database: For your integration to access a page or database, you must share it with your integration from the "Share" menu in Notion.
It is recommended to store your Notion token as an environment variable for security.
export NOTION_TOKEN="your_secret_token"
Usage
Here is an example of how to use the library:
import os
from notionhelper import NotionHelper
Initialize the NotionHelper class
notion_token = os.getenv("NOTION_TOKEN")
helper = NotionHelper(notion_token)
Retrieve a Database
database_id = "your_database_id"
database_schema = helper.get_database(database_id)
print(database_schema)
Create a New Page in a Database
page_properties = {
"Name": {
"title": [
{
"text": {
"content": "New Page from NotionHelper"
}
}
]
}
}
new_page = helper.new_page_to_db(database_id, page_properties)
print(new_page)
Append Content to the New Page
blocks = [
{
"object": "block",
"type": "heading_2",
"heading_2": {
"rich_text": [{"type": "text", "text": {"content": "Hello from NotionHelper!"}}]
}
},
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"type": "text",
"text": {
"content": "This content was appended synchronously."
}
}
]
}
}
]
helper.append_page_body(page_id, blocks)
print(f"Successfully appended content to page ID: {page_id}")
Get all pages as a Pandas DataFrame
df = helper.get_all_pages_as_dataframe(database_id)
print(df.head())
Upload a File and Attach to a Page
file_path = "path/to/your/file.pdf" # Replace with your file path
upload_response = helper.upload_file(file_path)
file_upload_id = upload_response["id"]
# Replace with your page_id
page_id = "your_page_id"
attach_response = helper.attach_file_to_page(page_id, file_upload_id)
print(f"Successfully uploaded and attached file: {attach_response}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file notionhelper-0.1.5.tar.gz.
File metadata
- Download URL: notionhelper-0.1.5.tar.gz
- Upload date:
- Size: 4.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
564c2dd483b25499c64d13034f42df7d036d37d7c59b7dd78ce7e160e43e2fbe
|
|
| MD5 |
718a2c17b39fbf0d51ce3c7a8345d279
|
|
| BLAKE2b-256 |
e71778019c527f290c5cf74113ad99db727d81dc323b6773d9e81f3f47fa6a34
|
File details
Details for the file notionhelper-0.1.5-py3-none-any.whl.
File metadata
- Download URL: notionhelper-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c44667d009a9c302a82321faa3a058b93b3dfc746cceaadac985d1515b7aeafd
|
|
| MD5 |
decdb53b0545822da4820e62eeff50a3
|
|
| BLAKE2b-256 |
4e2d7023640e81e041be01340bfdee3ec0de6bea39d51aca55d0824b278f4d9f
|