CSV 导出

任何 Datasette 表、视图或自定义 SQL 查询都可以导出为 CSV。

要获取您正在查看的表的 CSV 表示,请单击“此数据为 CSV”链接。

您还可以使用高级导出表单来更精细地控制生成的文件,该表单如下所示并具有以下选项

Advanced export form. You can get the data in different JSON shapes, and CSV options are download file, expand labels and stream all rows.
  • 下载文件 - 这会强制浏览器将 CSV 下载到您的下载目录,而不是在浏览器中显示 CSV。

  • 展开标签 - 如果您的表有任何外键引用,此选项将导致 CSV 增加额外的 COLUMN_NAME_label 列,其中包含从链接表中派生的每个外键的标签。在此示例中city_id 列伴随着一个 city_id_label 列。

  • 流式传输所有行 - 默认情况下,CSV 文件仅包含前 max_returned_rows 条记录。此选项将导致 Datasette 循环遍历所有匹配的记录并将它们作为单个 CSV 文件返回。

您可以在 https://latest.datasette.io/fixtures/facetable?_size=4 上尝试。

URL 参数

以下选项可用于自定义 Datasette 返回的 CSV。

?_header=off

这会删除指定标题的 CSV 文件的第一行 - 只会返回行数据。

?_stream=on

流式传输所有匹配的记录,而不仅仅是第一页结果。参见下文。

?_dl=on

使 Datasette 返回一个 content-disposition: attachment; filename="filename.csv" 头。

流式传输所有记录

流式传输所有行 选项旨在尽可能高效 - 在底层,它利用 Python 3 asyncio 功能和 Datasette 高效的 分页 来流式传输完整的 CSV 文件。

由于数据库可能相当大,默认情况下此选项限制为 100MB - 如果表返回的数据超过 100MB,CSV 的最后一行将是截断错误消息。

您可以使用 max_csv_mb 配置设置来增加或移除此限制。您还可以使用 allow_csv_stream 完全禁用 CSV 导出功能。