<div dir="ltr"><div><div><div><div><div><div><div>Grazie Carlos,<br><br></div><div>Ho risolto!!!!<br><br></div>Il db è DB2/400 (iseries IBM) al quale mi attacco via pyodbc con il connettore nativo di IBM.<br><br></div>L'sql è banale:<br><br></div>c = dbase.open.iseries().cursor() # modulo che mi restituisce il cursore.<br></div>s = "SELECT * FROM LIBRERIA.TABELLA"<br></div>c.execute(sql)<br></div>d = c.fetchall()<br><br><br></div><div>A questo punto d contiene i dati che hai visto.<br><br></div><div>Avevo tralasciato che la codifica su AS400 (iseries) e' EBCDIC e python sa cosa fare!:<br></div><div><br>>>> s = bytearray(b'\xf1\xf5\xf0\xf1\xf2\xf3')<br>>>> s.decode("cp1140").encode("ascii")<br>'150123'<br><br><a href="https://docs.python.org/2/library/codecs.html">https://docs.python.org/2/library/codecs.html</a><br><br><br></div><div>Grazie lo stesso!</div><br><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 28 gennaio 2015 10:44, Carlos Catucci <span dir="ltr"><<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2015-01-28 10:35 GMT+01:00 Riccardo Brazzale <span dir="ltr"><<a href="mailto:riccardo.brazzale@gmail.com" target="_blank">riccardo.brazzale@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>vi pongo la seguente questione: ho un' sql che reperisce dati da un database che li mette a disposizione in questo formato:<br><br>bytearray(b'\xf1\xf5\xf0\xf1\xf2\xf3'), (bytearray(b'@@@@@@')<br><br>Ora partiamo dal seguente assunto:<br><br>Si tratta di un campo data che può essere valorizzato oppure vuoto.<br><br>Nel primo caso la data e' "23/01/15" e nel secondo caso la data non è valorizzata.<br><br>Come posso "normalizzare", rendere cioe' "human readable" i dati?<br><br></div>Ho fatto vari esperimenti con struct, binascii ed altro senza venirne a capo.<br><br></div>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.</blockquote></div><br></div></div></div><div class="gmail_extra">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.<br></div><div class="gmail_extra">Attendo che i guru si pronuncino, ma magari sapere altre cose sarebbe utile:<br><br></div><div class="gmail_extra">che db?<br></div><div class="gmail_extra">come ottieni il risultato? Un esempio di query (in python) sarebbe opportuno<br></div><div class="gmail_extra">usi una connettore particolarper il db? <br>oppure un ORM? <br><span class=""><font color="#888888"><br clear="all"></font></span></div><span class=""><font color="#888888"><div class="gmail_extra">Carlos<br></div><div class="gmail_extra">-- <br><div><div dir="ltr"><div><div dir="ltr">EZLN ... Para Todos Todo ... Nada para nosotros<br></div></div></div></div>
</div></font></span></div>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><font face="monospace">Riccardo Brazzale</font></div><div dir="ltr"><br></div></div></div></div></div>
</div></div>