Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回python中sqlalchemy中的列表包含对象,类似于list<;OrderInfo>;在爪哇_Java_Python_Mysql_Sqlalchemy_Tornado - Fatal编程技术网

Java 如何返回python中sqlalchemy中的列表包含对象,类似于list<;OrderInfo>;在爪哇

Java 如何返回python中sqlalchemy中的列表包含对象,类似于list<;OrderInfo>;在爪哇,java,python,mysql,sqlalchemy,tornado,Java,Python,Mysql,Sqlalchemy,Tornado,我想得到一个包含整个OrderInfo对象的列表,例如,如果我这样做,它就是我想要的结果 def find_all(self): result_list = [] orderDao = DaoUtil.DaoGeneric() session = orderDao.getSession() try: for row in session.query(OrderInfo).all(): result_list.append({

我想得到一个包含整个OrderInfo对象的列表,例如,如果我这样做,它就是我想要的结果

def find_all(self):
    result_list = []
    orderDao = DaoUtil.DaoGeneric()
    session = orderDao.getSession()
    try:
        for row in session.query(OrderInfo).all():
            result_list.append({
                'id':row.id,
                'name': row.name,
                'age': row.age,
                 'create_time': row.create_time.strftime("%Y-%m-%d %H:%M:%S"),
                 'update_time': row.update_time.strftime("%Y-%m-%d %H:%M:%S"),
                    'version': row.version
                })
            session.commit()
    except Exception, e:
         print e
         session.rollback()
    return  result_list
但是我想要一个包含查询中OrderInfo对象的列表,因为查询返回的结果有其他列(所有DeclarativeBase实例的简单列表)。除了OrderInfo{id,name,age,create_time,update_time,version}之外,查询不直接返回OrderInfo对象。以下是我想说的:

def find_all(self):
    result_list = []
    orderDao = DaoUtil.DaoGeneric()
    session = orderDao.getSession()
        try:
            for row in session.query(OrderInfo).all():
                result_list.append(row.orderInfo) // if the row has a property for orderInfo Object, because the result which java can achieve , the example  for java is :   List<OrderInfo> orderList = session.query(); please help to achieve it


            session.commit()
    except Exception, e:
        print e
        session.rollback()
    return  result_list
def find_all(self):
结果_列表=[]
orderDao=DaoUtil.DaoGeneric()
session=orderDao.getSession()
尝试:
对于session.query(OrderInfo).all()中的行:
result_list.append(row.orderInfo)//如果该行具有orderInfo对象的属性,因为java可以实现的结果,java的示例是:list orderList=session.query();请帮助实现它
session.commit()
除例外情况外,e:
打印e
会话。回滚()
返回结果列表
因为我刚才在python中使用了sqlalchemy,所以我不是很确定。如何从sqlalchemy中的查询中获取包含OrderInfo对象的列表

for row in session.query(OrderInfo).all():     
包含以下列的变量行的行:

_decl_class_registry,       
_sa_class_manager,      
_sa_instance_state,    
metadata,       
query, 
id, 
name,  
age,  
create_time, 
update_time , 
version
只有这个(OrderInfo{id,name,age,create\u time,update\u time,version})是我想要得到的,其他我不想要得到的列

订单信息:

from sqlalchemy import Column, Integer, String, Date, DateTime
from sqlalchemy.ext.declarative import declarative_base
    Base=declarative_base()

    class OrderInfo(Base):
        __tablename__ =  'order_info'
        # __table__ =  'order_info'

        id = Column(Integer, primary_key=True)
        name = Column(String(100))
        age = Column(Integer)
        create_time = Column(Date)
        update_time = Column(Date)
        version = Column(Integer)

@尤尼弗里奥,我写在这里是因为评论的字数有限,它达到了这样的效果,就像这样:

  for row in session.query(OrderInfo).all():
            result_list.append({
                'id':row.id,
                'name': row.name,
                'age': row.age,
                 'create_time': row.create_time.strftime("%Y-%m-%d %H:%M:%S"),
                 'update_time': row.update_time.strftime("%Y-%m-%d %H:%M:%S"),
                    'version': row.version
                })
OrderInfo只有很少的列,如果OrderInfo对象有超过几百列,但这需要很长时间,所以我想找到一个结果,它可以简单地实现这个功能,类似于Java中的List,
我找到了我想要得到的答案:

   def find_all(self):
        result_list = []
        orderDao = DaoUtil.DaoGeneric()
        session = orderDao.getSession()
        try:
            for row in session.query(OrderInfo).all():
                result_list.append(DictUtil.object_as_dict(row))
            session.commit()
        except Exception, e:
            print e
            session.rollback()
        return result_list


def object_as_dict(obj):
    result = {instance.key: getattr(obj, instance.key)  for instance in inspect(obj).mapper.column_attrs}
    print result
    return result
输出:

[
{'updateTime': datetime.datetime(2017, 6, 15, 13, 56, 16), 'bankName': u'ICBC', 'bankNo': u'6228480666622220011', 'createTime': datetime.datetime(2017, 6, 15, 13, 56, 16), u'version': 0, u'id': 1}, 
{'updateTime': datetime.datetime(2017, 6, 15, 13, 57, 40), 'bankName': u'ICBC', 'bankNo': u'6228480666622220011', 'createTime': datetime.datetime(2017, 6, 15, 13, 57, 40), u'version': 0, u'id': 2}, 
{'updateTime': datetime.datetime(2017, 6, 15, 13, 58), 'bankName': u'ICBC', 'bankNo': u'6228480666622220011', 'createTime': datetime.datetime(2017, 6, 15, 13, 58), u'version': 0, u'id': 3}
]

session.query(OrderInfo).all()
是一个
OrderInfo
对象的列表。\u decl\u class\u registry\u sa\u class\u manager\u sa\u instance\u state元数据查询id name age创建\u time update\u time version您想要一个
OrderInfo
对象的列表,但是您很惊讶每个对象都有
OrderInfo
对象上的属性??如果这是Java,你会惊讶于你的
OrderInfo
对象上有
toString
?@univerio,事实上,我想从查询结果中得到OrderInfo对象,但查询结果包含许多多余的列(_decl_class_registry,_sa_class_manager,_sa_instance_state,metadata,query)对我来说,我只想(id,name,age,create_time,update_time,version)包含一个query属性,另一个我不想得到的属性。恐怕你得修改你的英语了。你问的标题有些不同(Java术语中的
列表
)与您的评论(a
列表
)进行比较。如果您想澄清问题,请编辑您的问题;不要将评论作为答案。