我想我誤解了一些關鍵和明顯的東西,我試圖使用 SqlAlchemy ORM 從資料庫的表中選擇一行并回傳值。第一步是獲取該行并訪問它,從那里我認為我很好,但是,當我選擇該行并嘗試調查回傳的物件時,我找到的只是記憶體中物件的地址:<位于 0x000001F65A54B490> 處的主.UserMap 物件,
嘗試使用 objprint 來調查物件沒有提供更多資訊,根據我的理解,我很困惑結果行物件應該表現得像一個元組,所以至少 objprint 應該在其中找到各種條目,即使它不能列印它們由于他們不是不同的資料型別。
有問題的宣告:
select(UserMap).where(UserMap.google_auth == '***********************')
更基本的 select(UserMap) 似乎也給出了類似的結果。
該表包含一些欄位作為字串,一些作為整數和一些日期和時間格式,但顯然每列只有一種型別。
我正在使用 session.execute,我想避免查詢,因為我知道它的功能在 2.x API 中已被棄用,如果我誤解了這一點,那么我很樂意嘗試這樣做,但仍然想了解我是什么結果和行物件出錯。
正如我所說,我想我錯過了一些重要的東西,但沒有意識到是什么,據我所知,我正在以與 ORM 檔案中顯示的方式大致相同的方式執行陳述句,例如:
>>> stmt = select(User).where(User.name == 'spongebob')
>>> with Session(engine) as session:
... for row in session.execute(stmt):
... print(row)
uj5u.com熱心網友回復:
<main.UserMap object at 0x000001F65A54B490>是 ORM 物件的默認字串表示形式。您可以使用標準語法檢索物件的屬性(屬性):
me = UserMap(user_name="Gord")
print(me) # <main.UserMap object at 0x000001F65A54B490>
print(me.user_name) # Gord
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341363.html
標籤:Python 数据库 sqlalchemy
