On 05/07/2018 08:50 PM, David G. Johnston wrote:
On Monday, May 7, 2018, tango ward <tangowar...@gmail.com <mailto:tangowar...@gmail.com>> wrote:


    cur_t.execute("""
                     SELECT TRANSLATE(snumber, ' ', '')
                     FROM sprofile """)

    # This will result in KeyError
    for row in cur_t:
    print row['snumber']

    # This works fine
    for row in cur_t:
    print row[0]


So apparently when you execute your query the result has at least one column but that column isn't named "snumber".  I'm sure there is a way in Python to debug "row" and find out what names it does have.  Or maybe

Python 3+
print(row)

Python 2.7
print row

execute the query in something like psql and observe e column name there.

That said, by default the name of columns whose values are derived by a single function call should be the name of the function.  So "translate", not "snumber" - the latter being consumed by the function. You can as use "as <alias>" to give it a different fixed name and refer to that.

David J.


--
Adrian Klaver
adrian.kla...@aklaver.com

Reply via email to