PyCharm 2025.3 Help

数据提取器

启用 数据库工具和 SQL 插件

此功能依赖 数据库工具和 SQL 插件,该插件在 PyCharm 中默认捆绑并启用。 如果看不到相关功能,请确保未禁用该插件。

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 数据库工具和 SQL 插件,并选中插件名称旁边的复选框。

数据提取器 在编辑器中设置复制或查看数据的规则(在 文本 编辑器视图模式下)。 您可以在靠近 导出数据 图标(导出数据图标 )的 数据提取程序 列表中选择默认提取器,配置现有提取器,或使用 Groovy 或 JavaScript 创建自定义提取器。

数据编辑器工具栏上的数据提取器列表

最后选择的提取器将成为新打开的编辑器选项卡的默认提取器。 对于 MongoDB,默认提取器始终为 JSON。

在下方视频中,数据使用 CSV 数据提取器进行复制,并在 文本 编辑器视图模式下使用 SQL 更新管道符分隔 数据提取器进行查看。

通过数据提取器,您可以将数据库数据导出为 SQL 语句以及多种格式。 导出到文件时,会为每个表或视图创建单独的文件。 有关导出的更多信息,请参阅 导出部分

支持的文件格式

可用脚本和支持的文件格式如下:

  • 预定义脚本。 使用它们可将数据导出为一组 INSERTUPDATE 语句、 TSV 和 CSV 文件、 Excel XLSX 文件、 Markdown 、HTML 表格以及 JSON 格式。

    1. 内置

      脚本

      文件格式

      SQL 插入

      .sql

      SQL 更新

      WHERE 子句

    2. CSV

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      管道分隔

      .txt

      使用 CSV 格式配置 来创建基于 CSV 或任意 DSV 格式的自定义格式。

    3. 脚本化

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      Excel

      .xlsx .xls

      HTML (groovy)

      .html

      HTML(js)

      JSON

      .json

      Markdown

      .md

      单行

      .sql

      SQL-Insert-Multirow

      SQL-Insert-Statements

      漂亮

      .txt

      XML

      .xml

  • 自定义数据提取器。 使用 Groovy 或 JavaScript 以及提供的 API 创建它们。

为 DSV 配置提取器

您可以扩展默认功能,并基于 CSV 或任何 DSV 格式创建自己的格式。 在其设置中,您可以为行和标题设置分隔符,定义 NULL 值的文本,指定引号,为带分隔符的格式创建新的提取器。

  1. 从数据提取器列表中选择 配置 CSV 格式

  2. CSV 格式 对话框中,点击 添加格式 图标 添加格式图标

  3. 指定新格式的名称(例如, Confluence Wiki Markup)。

  4. 定义格式设置:设置行和头部的分隔符,定义 NULL 值的文本,指定引用。 点击 确定

    创建格式后,您可以在 导出数据 图标(导出数据图标 )附近的下拉列表中选择它。

有关 CSV 格式 对话框的详细信息,请参阅 参考

添加自定义提取器

您可以创建在 Groovy 或 JavaScript 上编写的您自己的 extractor。

GitHub 仓库 中找到一个用于脚本化扩展开发的预配置项目。

  1. 项目 工具窗口中,导航到 临时文件和控制台 | 扩展 | 数据库工具和 SQL | data | extractors

  2. 右键点击 提取器 节点并选择 新建(N) | 文件

  3. 输入文件名(例如, PHP.array.groovy ),其中:

    • PHP :用于提取器菜单中的名称。

    • array :提取器的输出。

    • groovy :脚本的扩展名。

  4. 在新文件中键入或粘贴提取器的代码。 您可以使用 提取器 文件夹中其他提取器的代码来编写您的提取器。 此外,您可以尝试以下提取器:

  5. 请从提取器列表中选择提取器。

    请考虑以下在 PyCharm 中添加 PHP 数组提取器的示例。

自定义数据提取器的 API

使用以下 API 创建自定义数据提取器。

绑定

方法(Groovy 和 JavaScript)

描述

DIALECT

getDbms() 然后是以下方法之一:

  • isOracle

  • isMysql

  • isPostgres

  • isBigQuery

  • isRedshift

  • isGreenplum

  • isVertica

  • isMicrosoft

  • isSybase

  • isDb2

  • isHsqldb

  • isH2

  • isDerby

  • isSqlite

  • isExasol

  • isClickHouse

  • isCassandra

  • isHive

  • isSpark

  • isSnowflake

  • isMongo

  • isCouchbase

  • isCockroach

  • isTransactSql

  • isDocumentOriented

数据库方言

TABLE

  • getName()

  • getParent().getName()

数据库表元数据

ALL_COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中所有列的列表。

COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中的选定列列表。

FORMATTER

  • format(Row, Column)

  • formatValue(Object, Column)

  • getTypeName(Object, Column)

  • isStringLiteral(Object, Column)

默认格式化方法。

OUT

append(String)

提取器输出。

ROWS

  • int rowNumber()

  • boolean first()

  • boolean last()

  • java.util.List<java.lang.Object> data()

  • Object value(Column)

Row data stream.

转置

指示表格编辑器是否处于转置模式的布尔值。

示例

您可以使用以下简单的 CSV 数据提取器作为自定义数据提取器的基础。 此数据提取器的完整版可在 PyCharm 中使用。 要定位它,请在 项目 工具窗口中导航到 临时文件和控制台 | 扩展 | 数据库工具和 SQL | data | extractors

ROWS.each { row -> COLUMNS.eachWithIndex { column, i -> if (i > 0) OUT.append(",") OUT.append(FORMATTER.format(row, column)) } OUT.append("\n") }

参考

CSV 格式对话框

要访问此对话框,请点击工具栏上的 数据提取程序 列表并选择 配置 CSV 格式

此对话框包含用于将表数据转换为分隔符分隔值格式(例如, CSV、TSV)以及反向转换的设置。

为防止加载其余数据,预览限制为 10 条记录。 当您更改设置时,预览将相应更新。

项目

描述

格式

选择可将文件数据成功转换为表的模板。 您可以更改预定义模板的设置或添加新模板。 要添加模板,请点击 添加格式 按钮(添加格式图标)。

使用 添加格式)、 移除格式)、 )和 )按钮来创建、删除并重新排序格式; 复制格式复制格式图标 )用于创建所选格式的副本。

值分隔符(S)

选择或输入要用作值分隔符的字符。

行分隔符(R)

选择或输入要用作行分隔符的字符。

null 值文本(N)

当单元格包含 NULL 值时,选择或输入要使用的文本。

添加行前缀/后缀

点击该链接并输入行前缀和后缀。 前缀和后缀是字符序列,除行分隔符外,还用于指示一行的开始和结束。

引用

引号 下方区域中的每一行都是一个引用模式。 一个引用模式包括:

  • :插入在值之前的引用字符。

  • :插入在值之后的引用字符。

  • 转义 :当引用字符是值的一部分时使用的转义方法或转义字符。 <重复> 值表示,如果值中出现引用字符,则将其加倍。 您可以指定自己的转义字符。

如果存在多个模式,将使用第一个模式。

使用 添加)、 移除)、 )和 )按钮来创建、删除并重新排序模式。

为值加引号(Q)

选择何时将值用引用字符括起来。

  • 从不 :不引用值。

  • 需要时 :当值包含值分隔符或行分隔符时,引用该值。

  • 始终 :引用所有值。

清除空格(W)

忽略或移除空白字符。 如果清除此复选框,空白字符将被视为相应值的一部分。

第一行是头(H)

将第一行视为包含列名的行。

第一列是头(H)

将第一列视为包含行名的列。

最后修改日期: 2025年 12月 2日