【问题标题】:How to update database Item using the Notion API如何使用 Notion API 更新数据库项目
【发布时间】:2022-10-02 00:23:58
【问题描述】:

我目前正在尝试更新 Notion 数据库中的值,但我只能更新标题行而不是值字段。此外,当使用其 id 获取特定数据库时,仅返回标头值,而不是数据库内的值。 这是我目前用来更新数据库标头值的代码

payloadUpdateDataBase = {\"properties\":{\"Ticket ID\":{\"name\": \"New Ticket ID\"},},}

headers = {
\"Authorization\": \"Bearer \" + token,
    \"Accept\": \"application/json\",
    \"Notion-Version\": \"2022-02-22\",
    \"Content-Type\": \"application/json\"
}

def updateDatabase():
    response = requests.request(\"PATCH\", urlSingleDataBase, json=payloadUpdateDataBase, headers=headers)
    print(response.status_code)
    print(response.text)

有谁知道如何获取/更新数据库中的值而不仅仅是标题?

    标签: python notion-api


    【解决方案1】:

    数据库中的每个条目本身都是page,因此可以使用通常的pages 端点进行操作。通过查询数据库,您可以获得所需的page_id。另一方面,可以将每个条目视为block。如果要操作内容和不同的子块,可以将page_id 用作block_id 用于blocks 端点。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 它确实为他的问题提供了答案——通过更新页面,您将更新数据库中的值。
    【解决方案2】:

    readme.md file in the pynotion project 有更多关于此的信息,但您可以使用:

    from notion.client import NotionClient
    
    client = NotionClient(token_v2="<your token>")
    cv     = client.get_collection_view("<The url of your table>")
    
    for i in rows:
        if i.get_property("Name") == "<The name of the row you want to modify>":
            i.set_property("State", "To-do")
    

    不幸的是,过去 2 年没有维护主存储库,因此存在阻止先前代码运行的错误,但可以在 this Github comment 之后轻松修复它!

    此外,您可以通过以下方式以编程方式获取可用属性及其选项:

    props = cv.collection.get_schema_properties()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-18
      • 2022-01-23
      • 2021-11-08
      • 2015-11-19
      • 1970-01-01
      • 2021-08-06
      • 2023-02-19
      • 1970-01-01
      相关资源
      最近更新 更多