2017-10-10 34 views
2

我在postgresql中自動生成表格,使用sqlacodegen從列表中自動生成模型。SyntaxError:導入使用sqlacodegen生成的模型時標識符中的字符無效

某些名稱是非ascii字符。對於名稱爲aussieBabe,其創建了表aussieBabe_index,sqlAlchemy模型爲aussieBabeIndex。但是當我嘗試導入這些模型進行查詢時,我得到了以下錯誤。

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

我認爲這可以通過在創建表或限制類名前刪除無效字符來解決。我想限制由sqlacodegen生成的類名,我該如何實現?或者我可以爲代碼設置Unicode編碼?

+1

發佈bug問題跟蹤器! –

+1

如果您不能等待錯誤修正,請在https://github.com/agronholm/sqlacodegen/blob/master/sqlacodegen/codegen.py中更改'_re_invalid_identifier';或者甚至可能在Python2下運行它,以避免在標識符中使用unicode字符。 – snakecharmerb

+0

將發佈錯誤報告,現在我會按照@snakecharmerb建議更改'_re_invalid_identifier' – Harwee

回答

1

你的表名包含一些連Python 3都不允許的字符。您需要手動修復類名。 SQLACodegen不能期望產生完美的結果,因爲它的文檔也是如此。