SQLAlchemy使用automap查询返回类对象而非表实际结果如何解决
你当前拿到的<sqlalchemy.ext.automap.city at 0x15f7a87b8>是SQLAlchemy ORM返回的city表对应行的实体对象,本身已经包含了完整的查询结果,不需要额外配置,用以下方法即可取出实际数据:
方法1:直接访问对象属性
表的所有字段会自动映射为实体类的属性,直接调用即可取对应字段值,假设你的city表有id、city_name、province_code字段,示例如下:
# 取单个字段值 print(dm.id) print(dm.city_name) print(dm.province_code)
方法2:转字典格式获取全量字段
如果需要一次性拿到所有字段的键值对,可以通过__dict__属性转换,注意移除SQLAlchemy自动生成的内部属性_sa_instance_state:
res = dm.__dict__ res.pop('_sa_instance_state', None) print(res) # 输出示例:{'id': 1, 'city_name': '上海', 'province_code': '310000'}
方法3:查询时直接指定字段返回元组
如果不需要完整实体对象,查询时直接指定要返回的字段,返回结果为对应值的元组:
dm = session.query(City.id, City.city_name).first() print(dm) # 输出示例:(1, '上海')
方法4:转有序字典
也可以调用_asdict()方法直接生成有序字典:
res = dm._asdict() print(res)
内容的提问来源于stack exchange,提问作者user4718221
相关产品推荐
相关产品推荐

