You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL-Fluff中启用Core-Rules并解决TomlDecodeError?

SQL-Fluff启用core规则组时的TOML解析错误

我希望仅在SQL-Fluff中启用core规则组,因此在pyproject.toml文件中添加了以下内容:

[tool.sqlfluff]
rules = "core"

但运行时出现了如下错误:

File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\toml\decoder.py", line 134, in load
    return loads(ffile.read(), _dict, decoder)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\toml\decoder.py", line 478, in loads
    raise TomlDecodeError("What? " + group +
toml.decoder.TomlDecodeError: What? rules already exists?{'rules': 'core', 'core': {'dialect': 'tsql', 'exclude_rules': 'L016,L057,L029'}} (line 24 column 1 char 483)

错误含义

这个错误是TOML解析器抛出的,说明你的pyproject.toml文件中重复定义了rules配置项。从错误信息附带的字典可以看出,文件里已经存在一个rules配置,你新增的rules = "core"导致了键重复,TOML不允许同一个配置块下出现重复的键。

解决方法

要实现仅启用core规则组的需求,按以下步骤操作:

  1. 打开你的pyproject.toml,找到所有和rules相关的配置,删除重复的rules = "core"行(或删除原本存在的重复项)
  2. 配置结构要区分顶层规则组指定和core组的细节配置,正确的写法如下:
[tool.sqlfluff]
# 指定仅启用core规则组
rules = "core"

# core规则组的具体配置(方言、排除规则等)
[tool.sqlfluff.core]
dialect = "tsql"
exclude_rules = "L016,L057,L029"

这样配置既明确启用了core规则组,又保留了core组的自定义细节,不会出现重复键的问题。

内容的提问来源于stack exchange,提问作者phlope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:45:46