我試圖用sqlalchemy生成這樣的sql插入語句。有一個特殊的字符,如python密鑰中的句號
def get_sql(self):
"""Returns SQL as String"""
baz_ins = baz.insert().values(
Id=self._id,
Foo.Bar=self.foo_dot_bar,
)
return str(baz_ins.compile(dialect=mysql.dialect(),
compile_kwargs={"literal_binds": True}))
這將返回keyword cannot be expression
。擺脫\.
這段時間也不起作用。
我提出的一個解決方案是使用FooDOTBar instead of Foo.Bar
,然後用「。」替換所有的「DOT」。在生成的sql文件中,這會破壞一些其他數據,但並不是最優的。有什麼更好的建議從頭開始處理這個問題?
baz.insert().values({
"Id": self._id,
"Foo.Bar": self.foo_dot_bar,
})
爲什麼你試圖把在參數名稱的時期?它是如何在表模式中定義的? – FamousJameous
是的,可悲的是。我無法控制這一點。 – user3683080