python sqlalchemy打印出表格的所有行

python sqlalchemy打印出表格的所有行,python,sqlalchemy,Python,Sqlalchemy,如何打印表格中的所有行 import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, FLOAT from sqlalchemy.orm import scoped_session, sessionmaker engine = create_

如何打印表格中的所有行

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, FLOAT
from sqlalchemy.orm import scoped_session, sessionmaker

engine = create_engine('sqlite:///test2.db', echo=True)
Session = sessionmaker(bind=engine)
Base = declarative_base()

class Nutritional_Values(Base):
    __tablename__ = 'nutritional_values'
    id = Column(Integer, primary_key=True)
    item = Column(String)
    var1 = Column(FLOAT)
    var2 = Column(FLOAT)
    var3 = Column(FLOAT)

    def __repr__(self):
        return "<Nutrional Value(item='%s', var1='%s', var2='%s' var3='%s')>" % (
                             self.item, self.var1, self.var2, self.var3)

Base.metadata.create_all(engine)

s = Session()
objects = [
    Nutritional_Values(item="item1", var1=3, var2=4, var3=2),
    Nutritional_Values(item="item2", var1=4, var2=2, var3=8)
]
s.bulk_save_objects(objects)
s.commit()
导入sqlalchemy
从sqlalchemy导入创建引擎
从sqlalchemy.ext.declarative导入声明性基础
从sqlalchemy导入列、整数、字符串、浮点
从sqlalchemy.orm导入作用域的_会话,sessionmaker
引擎=创建引擎('sqlite:///test2.db,echo=True)
会话=会话生成器(绑定=引擎)
Base=声明性_Base()
类别营养价值(基数):
__tablename_uuu=‘营养价值’
id=列(整数,主键=True)
项=列(字符串)
var1=列(浮动)
var2=列(浮动)
var3=列(浮动)
定义报告(自我):
返回“”%(
self.item、self.var1、self.var2、self.var3)
Base.metadata.create_all(引擎)
s=会话()
对象=[
营养价值(item=“item1”,var1=3,var2=4,var3=2),
营养价值(item=“item2”,var1=4,var2=2,var3=8)
]
s、 批量保存对象(对象)
s、 提交()
我试过代码,但收到一条错误消息

for nutritional_value in s.query([Nutritional_Values]).all():
     print(nutritional_value)

    Traceback (most recent call last):
  File "sqlite_sqlalchemy.py", line 33, in <module>
    for nutritional_value in s.query([Nutritional_Values]).all():
  File "/Users/benjamattesjaroen/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1544, in query
    return self._query_cls(entities, self, **kwargs)
  File "/Users/benjamattesjaroen/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 168, in __init__
    self._set_entities(entities)
  File "/Users/benjamattesjaroen/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 198, in _set_entities
    entity_wrapper(self, ent)
  File "/Users/benjamattesjaroen/anaconda3/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 4474, in __init__
    "expected - got '%r'" % (column,)
sqlalchemy.exc.InvalidRequestError: SQL expression, column, or mapped entity expected - got '[<class '__main__.Nutritional_Values'>]'
用于s.query中的营养价值([nutrital\u Values])。all():
印刷品(营养价值)
回溯(最近一次呼叫最后一次):
文件“sqlite_sqlalchemy.py”,第33行,在
对于s.query中的营养价值([营养价值])。全部()
文件“/Users/benjamattesjaroen/anaconda3/lib/python3.7/site packages/sqlalchemy/orm/session.py”,第1544行,在查询中
返回self.\u查询\u cls(实体、self、**kwargs)
文件“/Users/benjamattesjaroen/anaconda3/lib/python3.7/site packages/sqlalchemy/orm/query.py”,第168行,在__
自组实体(实体)
文件“/Users/benjamattesjaroen/anaconda3/lib/python3.7/site packages/sqlalchemy/orm/query.py”,第198行,在集合实体中
实体_包装器(self,ent)
文件“/Users/benjamattesjaroen/anaconda3/lib/python3.7/site packages/sqlalchemy/orm/query.py”,第4474行,在__
应为-已获取“%r”(列)
sqlalchemy.exc.InvalidRequestError:应为SQL表达式、列或映射实体-获取“[]”

摆脱
[]
中关于s.query中营养价值的
([nutrital\u Values])。all():

query
方法希望传递会话,而不是要求传递会话。看起来这是一种方便的方法

例如:

q=Query([User,Address],session=some\u session)

上述内容相当于:

q=some\u session.query(用户、地址)


去掉
[]
中的
以获取s.query中的营养价值([nutrital\u Values])。all():

query
方法希望传递会话,而不是要求传递会话。看起来这是一种方便的方法

例如:

q=Query([User,Address],session=some\u session)

上述内容相当于:

q=some\u session.query(用户、地址)


错误消息是什么?它不喜欢模型列表。错误消息是什么?它不喜欢模型列表。