【SQL Alchemy】AttributeError: '...' object has no attribute 'translate'错误的解决
生活随笔
收集整理的這篇文章主要介紹了
【SQL Alchemy】AttributeError: '...' object has no attribute 'translate'错误的解决
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
bug情境描述
經(jīng)過查找,SQL Alchemy沒有自帶ON DUPLICATE KEY UPDATE功能,所以打算手寫一個。于是產(chǎn)生了下面的(錯誤)腦洞…
先按照想要UNIQUE的列查出結(jié)果,然后判斷:
- 如果查詢有結(jié)果,就用新Object的所有列去替換原有Object的所有列
- 如果查詢無結(jié)果,就直接db.session.add這個Object
以上方式?jīng)]有考慮到新的Object可能有些屬性(列)沒有值(大概是None?或者Null?),直接賦值給舊的Object的話,可能在存儲的時候,類型會有問題。所以直接替換每一個屬性可能不是好方法,或者需要判斷一下是否為空,再給新的Object賦值才可以。
想了一個替代方案:
判斷如果有查詢結(jié)果的話,直接刪除原有的Object,然后add整個新Object:
總結(jié)
以上是生活随笔為你收集整理的【SQL Alchemy】AttributeError: '...' object has no attribute 'translate'错误的解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】过滤数组中的空值(空字符
- 下一篇: 【SQLAlchemy】简单整理filt