在psycopg2中使用Translate()时的KeyError

时间:2018-05-08 02:07:54

标签: python postgresql psycopg2

我正在尝试删除我需要插入列中的数据中的空格。

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,代码工作正常。

1 个答案:

答案 0 :(得分:1)

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