Yeah you're right, making 'translate' as the key works. Thanks for pointing this out Sir David "That said, by default the name of columns whose values are derived by a single function call should be the name of the function." I didn't know it. Is it only in psycopg2 that the name of the columns will use the name of the function?
On Tue, May 8, 2018 at 12:40 PM, tango ward <tangowar...@gmail.com> wrote: > Shall I loop using the 'translate' as key to my row? > > On Tue, May 8, 2018 at 12:10 PM, Adrian Klaver <adrian.kla...@aklaver.com> > wrote: > >> On 05/07/2018 08:11 PM, tango ward wrote: >> >>> Sorry, accidentally pressed send. >>> >>> >>> cur_p = conn_pr(cursor_factory=psycopg2.extras.DictCursor) >>> cur_t = conn_t.cursor(cursor_factory=psycopg2.extras.DictCursor) >>> >>> >>> cur_t.execute(""" >>> SELECT TRANSLATE(snumber, ' ', '') >>> FROM sprofile """) >>> >>> >> DictCursor is a hybrid dict/sequence. >> >> # This will result in KeyError >>> for row in cur_t: >>> print row['snumber'] >>> >> >> Above you are using it as a dict and as David pointed you would need to >> use translate as the key: >> >> test=> select translate('test', '', ''); >> translate >> ----------- >> test >> >> >> >>> # This works fine >>> for row in cur_t: >>> print row[0] >>> >> >> Above you are using as a sequence, so the indexing works. >> >> >> >>> Sorry again. >>> >>> I would really appreciate any suggestions. >>> >>> Thanks, >>> J >>> >>> >> >> -- >> Adrian Klaver >> adrian.kla...@aklaver.com >> > >