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
>>
>
>

Reply via email to