SyntaxError: Invalid character in identifier when importing models generated using sqlacodegen

SyntaxError: Invalid character in identifier when importing models generated using sqlacodegen

我在 postgresql 中自动生成 table,模型是使用 sqlacodegen 使用列表中的名称自动生成的。

有些名称是非 ascii 字符。对于名称 aussieBabe,它创建了一个 table aussieBabe_index,其 sqlAlchemy 模型是 aussieBabeIndex。但是当我尝试导入这些模型进行查询时,出现以下错误。

line 147
    class aussieBabeIndex(Base):
                              ^
SyntaxError: invalid character in identifier

我认为这可以通过在创建 table 或限制 class 名称之前删除无效字符来解决。我想限制由 sqlacodegen 生成的 class 名称,我该如何实现?或者我可以为代码设置 Unicode 编码吗?

您的 table 名称包含一些甚至 Python 3 都不允许的字符。您需要手动修复 class 名称。不能指望 SQLACodegen 会产生完美的结果,正如其文档所述。