notion-df

Seamlessly Connecting Notion Database with Python Pandas DataFrame

MIT License

Downloads
2K
Stars
82
Committers
2

Bot releases are hidden (Show)

notion-df - v0.0.5: Better RichText, More documentation, More robust list-like-item-parsing Latest Release

Published by lolipopshock over 2 years ago

notion-df - v0.0.4: More field coverage, better relation handling, more robust parsing

Published by lolipopshock over 2 years ago

What's Changed

Full Changelog: https://github.com/lolipopshock/notion-df/compare/v0.0.3...v0.0.4

notion-df - v0.0.3: Support Relation, Robust Email + URL

Published by lolipopshock over 2 years ago

notion-df - v0.0.2: Functional updates

Published by lolipopshock almost 3 years ago

  • Better validation for Select Option names #1
  • Allow ignoring errors for uploading #2
  • Handle pagination when downloading #3

Full Changelog: https://github.com/lolipopshock/notion-df/compare/v0.0.1...v0.0.2

notion-df - v0.0.1: Initial Release

Published by lolipopshock almost 3 years ago

This release implements the basic function of the notion_df library.

Usage

  • Before starting, please follow the instructions to create a new integration and add it to your Notion page or database.

    • We'll refer Internal Integration Token as the api_key below.
  • Pandas-flavored APIs: Just need to add two additional lines of code:

    import notion_df
    notion_df.pandas() #That's it!
    
    import pandas as pd
    df = pd.read_notion(page_url, api_key=api_key)
    df.to_notion(page_url)
    
  • Download your Notion table as a pandas DataFrame

    import notion_df
    df = notion_df.load(notion_database_url, api_key=api_key)
    # Equivalent to: df = pd.read_notion(notion_database_url, api_key=api_key)
    df.head()
    
  • Append a local df to a Notion database:

    import notion_df
    notion_df.upload(df, notion_database_url, title="page-title", api_key=api_key)
    # Equivalent to: df.to_notion(notion_database_url, title="page-title", api_key=api_key)
    
  • Upload a local df to a newly created database in a Notion page:

    import notion_df
    notion_df.upload(df, notion_page_url, title="page-title", api_key=api_key)
    # Equivalent to: df.to_notion(notion_page_url, title="page-title", api_key=api_key)
    
  • Tired of typing api_key=api_key each time?

    import notion_df
    notion_df.config(api_key=api_key) # Or set an environment variable `NOTION_API_KEY`
    df = notion_df.load(notion_database_url)
    notion_df.upload(df, notion_page_url, title="page-title")
    # Similarly in pandas APIs: df.to_notion(notion_page_url, title="page-title")
    

Full Changelog: https://github.com/lolipopshock/notion-df/commits/v0.0.1

Package Rankings
Top 7.84% on Pypi.org