小编use*_*560的帖子

如果索引不存在,则Python列表在索引处设置值

是否有一种方法,lib或python中的东西,我可以在列表中设置不存在的索引值?像列表中的运行时索引创建一样:

l = []
l[3] = 'foo'
# [None, None, None, 'foo']
Run Code Online (Sandbox Code Playgroud)

更进一步,使用多维列表:

l = []
l[0][2] = 'bar'
# [[None, None, 'bar']]
Run Code Online (Sandbox Code Playgroud)

或者使用现有的:

l = [['xx']]
l[0][1] = 'yy'
# [['xx', 'yy']]
Run Code Online (Sandbox Code Playgroud)

python multidimensional-array python-3.x

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

Python SQLAlchemy使用标记的OVER子句和ORM进行查询

另一个问题是如何在sqlalchemy上使用OVER子句:

在SQLAlchemy中使用OVER窗口函数

但是如何使用ORM呢?我有类似的东西:

q = self.session.query(self.entity, func.count().over().label('count_over'))
Run Code Online (Sandbox Code Playgroud)

q.all()使用以下消息调用时失败:

sqlalchemy.exc.InvalidRequestError:
Ambiguous column name 'count(*) OVER ()' in result set! try 'use_labels' option on select statement
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

python sqlalchemy

8
推荐指数
1
解决办法
1615
查看次数

Python SqlAlchemy不能使用NULL值插入ARRAY(postgres)?

我正在使用多维数组,并且我注意到postgres需要强制转换表达式以插入值,例如:

CREATE TABLE test (
    pay  integer[]
);
CREATE TABLE

INSERT INTO test values (ARRAY[NULL]);
ERROR:  column "pay" is of type integer[] but expression is of type text[]
LINE 1: INSERT INTO test values (ARRAY[NULL]);
                                 ^
HINT:  You will need to rewrite or cast the expression.

INSERT INTO test values (ARRAY[NULL::integer]); -- How to do this on SqlAlchemy ?
INSERT 0 1                                      -- ARRAY[NULL]::integer[] would also works
Run Code Online (Sandbox Code Playgroud)

这就是我添加对象时SqlAlchemy所做的事情,如果VALUE为NULL,则不会进行类型转换。这是我的代码的一部分:

from sqlalchemy.dialects.postgresql import ARRAY
class Test (Base):

    __tablename__ = 'test'

    pay = …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy

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

Python过滤嵌套字典给定的键名列表

有没有办法在Python中过滤嵌套字典,这样我只能看到我指定的键?例子:

x = {
  "field": [
    {
      "nm_field": "ch_origem_sistema_chave",
      "inf_tabelado": {
        "dropdown_value": "",
        "dropdown_key": "",
        "url_lista": "",
        "chave_relacional": ""
      },
    },
    {
      "nm_field": "ax_andamento_data",
      "inf_tabelado": {
        "dropdown_value": "",
        "dropdown_key": "",
        "url_lista": "",
        "chave_relacional": ""
      },
    }
  ],
  "_metadata": {
    "dt_reg": "22/01/2014 16:17:16",
    "dt_last_up": "10/04/2014 16:30:44",
  },
  "url_detalhes": "/DetalhesDocsPro.aspx",
  "url_app": "/docspro",
}

y = filter(x, ['dropdown_value', 'nm_field', 'url_app', 'dt_reg'])
Run Code Online (Sandbox Code Playgroud)

那么 var y 会是这样的:

{
  "field": [
    {
      "nm_field": "ch_origem_sistema_chave",
      "inf_tabelado": {
        "dropdown_value": "",
      },
    },
    {
      "nm_field": "ax_andamento_data",
      "inf_tabelado": {
        "dropdown_value": …
Run Code Online (Sandbox Code Playgroud)

python recursion

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