在psycopg2中使用Translate()时的KeyError

问题描述 投票:0回答:1

我试图删除我需要插入到列中的数据中的空格。

Error Message
x = self._index[x]
KeyError: 'snumber'

码:

cur_t = conn_t.cursor(cursor_factory=psycopg2.extras.DictCursor)
    cur_t.execute("""
                    SELECT TRANSLATE(snumber, ' ', ''), age
                    FROM sprofile """)

    for row in cur_t:
                    print row['snumber']

如果我将使用print row[0]而不是列名称,代码可以工作。如果我在psql中运行SELECT TRANSLATE(snumber, ' ', '' FROM sprofile,代码工作正常。

python postgresql psycopg2
1个回答
1
投票

我刚刚发现,因为我在我的数据上使用了一个函数,所以将使用的列名将是函数名。 (e.g. row['translate'])但我仍然可以使用'snumber'列名称来制作一个“别名”(e.g. SELECT TRANSLATE(snumber, ' ', '') as snumber

© www.soinside.com 2019 - 2024. All rights reserved.