6

我有一些 Python 代码使用notion-client library检索 Notion 数据库中的行。该代码确实设法检索所有行,但顺序错误。我从 API 参考中查看了Sort 对象,但无法弄清楚如何使用它以它们在 notion.so 上显示的确切顺序返回行。这是有问题的片段:

from notion_client import Client

notion = Client(auth=NOTION_API_TOKEN)
result = notion.databases.query(database_id='...')
for row in result['results']:
  title = row['properties']['NAME_OF_PROPERTY']['title']
  if len(title) == 0:
    print('')
  else:
    print(title[0]['plain_text'])

我错过了什么?

4

3 回答 3

1

Notion API 不支持当前版本中的视图,因此它不一定会匹配您拥有它的顺序,除非您应用了您也可以通过 API 应用的排序或过滤器。

于 2021-06-10T06:18:57.717 回答
0

这和他们的文档一样有效

const response = await notion.databases.query({
    database_id: databaseId,
    filter: {
      or: [
        {
          property: 'In stock',
          checkbox: {
            equals: true,
          },
        },
        {
          property: 'Cost of next trip',
          number: {
            greater_than_or_equal_to: 2,
          },
        },
      ],
    },
    sorts: [
      {
        property: 'Last ordered',
        direction: 'ascending',
      },
    ],
  });
于 2021-09-30T02:28:47.117 回答
-1

使用order参数来notion.databases.query()。此参数是排序规范的列表,它们是字典。

result = notion.databases.query(
    database_id = 'df4dfb3f-f36f-462d-ad6e-1ef29f1867eb',
    sort = [{"property": "NAME_OF_PROPERTY", "direction": "ascending"}]
)

您可以在列表中放置多个排序规范,后面的将用于前面属性中相等的行。

于 2021-06-05T21:38:58.713 回答