相关疑难解决方法(0)

如何通过python中的属性从对象列表中选择对象

如果已经问过这个问题,我很抱歉,但我认为我不知道通过谷歌搜索合适的解决方案的正确术语.

我想通过它的属性值从对象列表中选择一个对象,例如:

class Example():
    def __init__(self):
        self.pList = []
    def addPerson(self,name,number):
        self.pList.append(Person(self,name,number))

class Person():
    def __init__(self,name,number):
        self.nom = name
        self.num = number


a = Example()
a.addPerson('dave',123)
a.addPerson('mike',345)

a.pList #.... somehow select dave by giving the value 123
Run Code Online (Sandbox Code Playgroud)

在我的情况下,数字将始终是唯一的

谢谢您的帮助

python oop

10
推荐指数
2
解决办法
1万
查看次数

SQLAlchemy ORDER BY FIELD()

我试图通过字段对SQLAlchemy ORM对象进行排序,但具有特定的值顺序(既不是升序也不是降序).如果我在MySQL上做这个查询,它看起来像;

SELECT letter FROM alphabet_table WHERE letter in ('g','a','c','k')
ORDER BY FIELDS( letter, 'g','a','c','k');
Run Code Online (Sandbox Code Playgroud)

输出:

letter
------
  g
  a
  c
  k
Run Code Online (Sandbox Code Playgroud)

对于SQLAlchemy,我一直在尝试以下方面:

session.query(AlphabetTable).filter(AlphabetTable.letter.in _(( 'G', 'A', 'C', 'K'))).ORDER_BY(AlphabetTable.letter.in _(( 'G','一", 'C', 'K')))

哪个不起作用......有什么想法吗?这是一个小的一次性常量列表,我可以创建一个包含订单的表然后加入,但这看起来有点太多了.

python sqlalchemy sql-order-by

8
推荐指数
2
解决办法
5995
查看次数

如何按列表对sqlalchemy中的数据进行排序

我有来自外部 postgresql 数据库的 ID 列表。

A = [1,2,3,4,5,6,7,98,0]
Run Code Online (Sandbox Code Playgroud)

我会使用 SQLAlchemy 对数据库进行查询,但我会按 A 列表对 postgresql 中的数据进行排序。

我已经阅读了很多文档,但找不到任何关于如何做到这一点的建议。

所以,最后我会有:

results = session.query(user).limit(20).offset(10).order_by(A)
Run Code Online (Sandbox Code Playgroud)

干杯

更新:

我找到了解决方案,它没有我预期的那么好,但效果很好。无论如何,如果您知道更好的解决方案,请告诉我!

ids = ','.join([str(i) for i in A])
results = session.query(user).filter(user.id.in_(A)).\
limit(20).offset(10).\
order_by(" position(CONCAT(',',users.id::text,',') in ',{0},'.format(ids)")
Run Code Online (Sandbox Code Playgroud)

python sql postgresql sqlalchemy

5
推荐指数
2
解决办法
5130
查看次数

标签 统计

python ×3

sqlalchemy ×2

oop ×1

postgresql ×1

sql ×1

sql-order-by ×1