小编use*_*188的帖子

如何在python中使用sqlalchemy和sqlite增加连接超时

我使用sqlite(v2.6.0)作为数据库后端并使用sqlalchemy(v0.7.9)来操作它.最近我收到了一个错误OperationalError: (OperationalError) database is locked

通过搜索stackoverflow,可能的解决方案是增加连接的超时.Referece:OperationalError:数据库被锁定

但我不知道如何在sqlalchemy中做到这一点(因为连接实际上是由它控制的)有人可以给我一个方向吗?

python sqlite sqlalchemy operationalerror

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

postgresql 组计数使用快速方式不同

我得到T了 2 列的表格,如下例所示:

C1      C2
----------
A       x
A       x
A       y
B       x
B       x
Run Code Online (Sandbox Code Playgroud)

我要计算不同数C1为每个价值C2。这个结果应该是这样的:

C1      distinct count
----------------------
A       2               // count distinct x,x,y = 2
B       1               // count distinct x,x = 1
Run Code Online (Sandbox Code Playgroud)

很容易得出这样的 SQL 查询

select C1, count(distinct C2) from T group by C1
Run Code Online (Sandbox Code Playgroud)

然而,正如在postgresql COUNT(DISTINCT ...) very slow 中所讨论的,这个查询的性能很差。我想使用该count (*) (select distinct ...)文章中建议的改进查询 ( ),但我不知道如何使用 group by 来形成查询。

postgresql group-by distinct

4
推荐指数
1
解决办法
3947
查看次数

使用条件删除列表中的元素

我有一个名为 Info 的类,其中 Info 有一个字符串类型的实例变量,可以通过 Info.getName()

我还有一个实例信息列表,例如class_list = [Info('Aleck'), Info('John')].

给定 a name_list = ['Aleck', 'Bob'],我想在 name_list 中删除 class_list 中具有相同名称的元素,同时我还需要知道名称(例如 Bob)是否不在 class_list 中(例如打印出 bob 不在列表中)

对于上面的示例,结果应该是 class_list = [Info('John')] 并打印出 bob 不在列表中。

我知道这样做的丑陋方式,例如以下代码(我实际上并没有运行它,只是一个示例),是否有优雅或 Pythonic 的方式来做到这一点?

def removeElement(name_list, class_list):
    list_to_be_removed = []
    for name in name_list:
        is_name_in_list = false
        for obj in class_list
            if name == obj.getName():
                list_to_be_removed.add(obj)
                is_name_in_list = true
                break
        if is_name_in_list == false:
            print name + ' is not in the list'
        is_name_in_list = false …
Run Code Online (Sandbox Code Playgroud)

python list conditional-statements

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