[Python] Sono incartato (hex to ascii?)

Riccardo Brazzale riccardo.brazzale a gmail.com
Mer 28 Gen 2015 11:39:44 CET


Grazie Carlos,

Ho risolto!!!!

Il db è DB2/400 (iseries IBM) al quale mi attacco via pyodbc con il
connettore nativo di IBM.

L'sql è banale:

c = dbase.open.iseries().cursor()  # modulo che mi restituisce il cursore.
s = "SELECT * FROM LIBRERIA.TABELLA"
c.execute(sql)
d = c.fetchall()


A questo punto d contiene i dati che hai visto.

Avevo tralasciato che la codifica su AS400 (iseries) e' EBCDIC e python sa
cosa fare!:

>>> s = bytearray(b'\xf1\xf5\xf0\xf1\xf2\xf3')
>>> s.decode("cp1140").encode("ascii")
'150123'

https://docs.python.org/2/library/codecs.html


Grazie lo stesso!


Il giorno 28 gennaio 2015 10:44, Carlos Catucci <carlos.catucci a gmail.com>
ha scritto:

>
> 2015-01-28 10:35 GMT+01:00 Riccardo Brazzale <riccardo.brazzale a gmail.com>
> :
>
>> vi pongo la seguente questione: ho un' sql che reperisce dati da un
>> database che li mette a disposizione in questo formato:
>>
>> bytearray(b'\xf1\xf5\xf0\xf1\xf2\xf3'), (bytearray(b'@@@@@@')
>>
>> Ora partiamo dal seguente assunto:
>>
>> Si tratta di un campo data che può essere valorizzato oppure vuoto.
>>
>> Nel primo caso la data e' "23/01/15" e nel secondo caso la data non è
>> valorizzata.
>>
>> Come posso "normalizzare", rendere cioe' "human readable" i dati?
>>
>> Ho fatto vari esperimenti con struct, binascii ed altro senza venirne a
>> capo.
>>
>> Semplicemente, potrei analizzare la stringa e dedurre i valori (se = xF1
>> allora 1, se XF4 allora 4, se @ allora vuoto) ma non piace a nessuno.
>
>
> A naso direi che il prmo caso sia una codifica (suppongo utf-8, ma non ho
> controllato). Il fatto che il vuoto sia riepito di '@' invece mi pare
> strano.
> Attendo che i guru si pronuncino, ma magari sapere altre cose sarebbe
> utile:
>
> che db?
> come ottieni il risultato? Un esempio di query (in python) sarebbe
> opportuno
> usi una connettore particolarper il db?
> oppure un ORM?
>
> Carlos
> --
> EZLN ... Para Todos Todo ... Nada para nosotros
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>


-- 
Riccardo Brazzale
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150128/1a797875/attachment.html>


Maggiori informazioni sulla lista Python