python
runtime_error
ai_generated
true
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.dict' is not mapped
ID: python/sqlalchemy-orm-session-merge-error
80%Fix Rate
85%Confidence
0Evidence
2025-10-05First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 3.x | active | — | — | — |
Root Cause
Passing a dictionary instead of a mapped class instance to session.merge().
generic中文
向 session.merge() 传递字典而不是映射类实例。
Workarounds
-
95% success Create mapped instance from dict.
user_data = {'id': 1, 'name': 'Alice'} user = User(**user_data) merged_user = session.merge(user) -
90% success Use session.execute() with insert statement.
from sqlalchemy import insert stmt = insert(User).values(**user_data) session.execute(stmt)
Dead Ends
Common approaches that don't work:
-
Converting dict to object manually without proper mapping.
80% fail
Object still not recognized by ORM.
-
Using session.add() with dict.
90% fail
Same error; session expects mapped instances.