小编bar*_*ard的帖子

Alembic:使用USING改变列类型

我正在尝试使用alembic将SQLAlchemy PostgreSQL ARRAY(文本)字段转换为我的一个表列的BIT(vary = True)字段.

该列目前定义为:

cols = Column(ARRAY(TEXT), nullable=False, index=True)
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

cols = Column(BIT(varying=True), nullable=False, index=True)
Run Code Online (Sandbox Code Playgroud)

默认情况下似乎不支持更改列类型,因此我手动编辑了alembic脚本.这就是我目前所拥有的:

def upgrade():
    op.alter_column(
        table_name='views',
        column_name='cols',
        nullable=False,
        type_=postgresql.BIT(varying=True)
    )


def downgrade():
    op.alter_column(
        table_name='views',
        column_name='cols',
        nullable=False,
        type_=postgresql.ARRAY(sa.Text())
    )
Run Code Online (Sandbox Code Playgroud)

但是,运行此脚本会出现错误:

Traceback (most recent call last):
  File "/home/home/.virtualenvs/deus_lex/bin/alembic", line 9, in <module>
    load_entry_point('alembic==0.7.4', 'console_scripts', 'alembic')()
  File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 399, in main
    CommandLine(prog=prog).main(argv=argv)
  File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 393, in main
    self.run_cmd(cfg, options)
  File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 376, in run_cmd
    **dict((k, getattr(options, k)) for k in kwarg)
  File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/command.py", line …
Run Code Online (Sandbox Code Playgroud)

postgresql sqlalchemy alembic

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

使用Lodash删除数组中的元素

我有这个数组:

var fruits = ['Apple', 'Banana', 'Orange', 'Celery'];
Run Code Online (Sandbox Code Playgroud)

我使用Lodash是remove这样的:

_.remove(fruits, function (fruit) {
  return fruit === 'Apple' || 'Banana' || 'Orange';
})
Run Code Online (Sandbox Code Playgroud)

结果是['Apple', 'Banana', 'Orange', 'Celery'],虽然我期待它['Apple', 'Banana', 'Orange'].为什么会这样?

javascript lodash

23
推荐指数
4
解决办法
7万
查看次数

Javascript:在字符串中查找最长的单词

function longestWord(string) {
    var str = string.split(" ");
    var longest = 0;
    var word = null;
    for (var i = 0; i < str.length - 1; i++) {
        if (longest < str[i].length) {
            longest = str[i].length;
            word = str[i];
        }
    }
    return word;
}
Run Code Online (Sandbox Code Playgroud)

当我打电话时longestWord("Pride and Prejudice"),它会返回'Pride'而不是'偏见'这是最长的单词......为什么?我检查了一些其他类似的问题,但解决方案看起来很像我的代码.

javascript

14
推荐指数
3
解决办法
5万
查看次数

如何用不在括号内的逗号分隔?

假设我有一个这样的字符串,其中的项目用逗号分隔,但在带有括号内容的项目中也可能有逗号:

(编辑:对不起,忘了提一些项目可能没有括号内容)

"Water, Titanium Dioxide (CI 77897), Black 2 (CI 77266), Iron Oxides (CI 77491, 77492, 77499), Ultramarines (CI 77007)"
Run Code Online (Sandbox Code Playgroud)

如何只用那些不在括号内的逗号分割字符串?即:

["Water", "Titanium Dioxide (CI 77897)", "Black 2 (CI 77266)", "Iron Oxides (CI 77491, 77492, 77499)", "Ultramarines (CI 77007)"]
Run Code Online (Sandbox Code Playgroud)

我想我必须使用正则表达式,也许是这样的:

([(]?)(.*?)([)]?)(,|$)
Run Code Online (Sandbox Code Playgroud)

但我仍然想让它发挥作用.

python regex

14
推荐指数
1
解决办法
5105
查看次数

Postgres错误:没有现有的本地群集适合作为默认目标

我有一个旧项目,我想重新进入,但我无法进入postgres.跑步sudo -u postgres psql给了我:

Error: No existing local cluster is suitable as a default target. 
Please see man pg_wrapper(1) how to specify one.
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是因为我几个月前将postgres升级到版本9.4.这是我的输出dpkg --get-selections |grep postgres:

postgresql                          install
postgresql-9.3                      install
postgresql-9.4                      install
postgresql-client-9.3               install
postgresql-client-9.4               install
postgresql-client-common            install
postgresql-common                   install
postgresql-contrib                  install
postgresql-contrib-9.3              install
postgresql-contrib-9.4              install
postgresql-server-dev-9.3           install
Run Code Online (Sandbox Code Playgroud)

这些是我目前的集群来自pg_lsclusters:

Ver Cluster Port Status Owner    Data directory               Log file
9.4 apps    5434 online postgres /var/lib/postgresql/9.4/apps /var/log/postgresql/postgresql-9.4-apps.log

9.4 main    5433 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
Run Code Online (Sandbox Code Playgroud)

我能做些什么才能再次访问postgres?谷歌搜索没有太大的帮助.

postgresql

12
推荐指数
3
解决办法
1万
查看次数

在Python中组合3个布尔掩码

我有3个列表:

a = [True, False, True]
b = [False, False, True]
c = [True, True, False]
Run Code Online (Sandbox Code Playgroud)

当我输入

a or b or c
Run Code Online (Sandbox Code Playgroud)

我想找回一份清单

[True, True, True]
Run Code Online (Sandbox Code Playgroud)

但我回来了

[True, False, True]
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?我该如何组合这些面具?

python boolean-logic

8
推荐指数
3
解决办法
9696
查看次数

如何根据喜好安排每个人?

此问题来自CodeEval问题118

您的团队正在搬到新办公室.为了让他们在新的地方感觉舒适,你决定让他们选择他们想要的座位.每个团队成员都会向您提供他/她认为可以接受的席位列表.您的目标是确定是否可以满足使用这些列表的每个人.

新办公室的座位数从1到N.每个团队成员给你的座位偏好列表是未分类的.

示例输入和输出:

1:[1, 3, 2], 2:[1], 3:[4, 3], 4:[4, 3] --> Yes # possible
1:[1, 3, 2], 2:[1], 3:[1] --> No # not possible
Run Code Online (Sandbox Code Playgroud)

怎么解决?


我尝试了什么?我认为解决方案是递归的,这是我到目前为止所提出的,但我认为我没有正确地将问题分解为较小的子问题.

def seat_team(num_seats, preferences, assigned):
    if len(preferences) == 1:
        for seat in range(len(preferences)):
            print preferences
            seat_wanted = preferences[0][1][seat]
            if not assigned[seat_wanted-1]:
                assigned[seat_wanted-1] = True
                return True, assigned
        return False, assigned
    else:
        for i in range(len(preferences)):
            current = preferences[i]
            for seat in current[1]:
                    found, assigned = seat_team(num_seats, [preferences[i]], assigned)
                    if not found:
                        return …
Run Code Online (Sandbox Code Playgroud)

python algorithm recursion

6
推荐指数
2
解决办法
1904
查看次数

如何在 Python 中可视化 3D delaunay 三角剖分?

我有一组 3D 点,我使用 scipy.spatial.Delaunay 来进行三角剖分/四面体化。我现在有一组所有四面体的独特面,并希望在 3D 中可视化这些面。

是否有任何 Python 库(或带有 Python 包装器的库)可以做到这一点?

python scipy vtk mayavi mplot3d

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

SQLAlchemy:按关系过滤

我有2个表,User并且Object具有一对多的关系(User可以有很多objects).

如何以符合pep8的方式过滤具有至少一个对象的用户?

此代码有效,但不符合pep8:

query = session.query(User.id)
query = query.filter(User.objects != None)
Run Code Online (Sandbox Code Playgroud)

文档提到使用isnot:http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html#common-filter-operators

但是以下代码会导致未实现的错误.

query = session.query(User.id)
query = query.filter(User.objects.isnot(None))
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

5
推荐指数
1
解决办法
2905
查看次数

计算表中重复行的总数

我有在具有下列的表检查重复行的SQL语句:idcase_idraw_nameinitialsnamejudge_idmagistrate_idscore

SELECT MIN(id), case_id, initials, raw_name, count(*)
FROM my_table
GROUP BY case_id, raw_name, initials, name, judge_id, magistrate_id
HAVING count(*) > 1;
Run Code Online (Sandbox Code Playgroud)

(如果它包含了相同的值的行被认为是重复的case_idraw_nameinitialsnamejudge_idmagistrate_id列。)

如何获得需要删除的重复行总数(每组重复项剩下1行)?

sql postgresql

5
推荐指数
1
解决办法
2260
查看次数