[Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
Salve gente sono ancora qui a rompere.

Problema similare alla volta scorsa ma con una piccola complicazione.
I parametri che devo passare con il post alla chiamata al webservice sono
stavolta incaprettati.

data stavolta prevede

func: 'getPreventivo'
name: 'preventivo'
param[script]: 'biglietti_da_visita.js'
param[data_modifica]: '21112014_0907'

In apparenza basterebbe fare

 param = {'script':'biglietti_da_visita.js',
'data_modifica':'21112014_0907'}
 data = dict(func='getPreventivo', name='preventivo', param=param)

oppure

 data = dict(func='getPreventivo', name='preventivo',
param=dict(func='getPreventivo', name='preventivo')

ma se poi provo a vedere che razza di URL passi la chiamata con

 prepared = requests.Request(url=url2).prepare()
 prepared.prepare_url(prepared.url, data)
 print prepared.url

sorpresa sorpresa ottengo

http://www.pixartprinting.it/core/phpLink.php?param=data_modificaparam=scriptname=preventivofunc=getPreventivo

ovvero una struttura flat dove ho due volte param come chiave e script e
getPreventivo come valori. Il mio problema (lo so che dee essere una cosa
diota, ma non mi viene e non riesco a trovare esempi) e' come passare
parametri in quella forma.
Se provo a passare i due ribaldi con una struttura tipo

 data = dict(func='getPreventivo', name='preventivo',
func='getPreventivo', name='preventivo')

si ostina non funzionare (torna un content vuoto come il mio conto
corrente)

Graditi suggerimenti, per gli insulti in matrix (chi e' stato point FidoNet
puo' capire)

Gracias
Carlos

-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
2015-01-28 14:52 GMT+01:00 Marco Beri marcob...@gmail.com:

 Fai una GET e non una POST, lasciando data.


Ma tu dici che il web service dall'altra parte risponde lo stesso?
Provolo, o mio guru

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Marco Beri
On Wed, Jan 28, 2015 at 2:53 PM, Carlos Catucci carlos.catu...@gmail.com
wrote:


 2015-01-28 14:52 GMT+01:00 Marco Beri marcob...@gmail.com:

 Fai una GET e non una POST, lasciando data.


 Ma tu dici che il web service dall'altra parte risponde lo stesso?
 Provolo, o mio guru


No, scusa, un momento. Ho risposto a un semaforo rosso per cui posso aver
capito male.

Pensavo che quell'URL forse quella che vedevi dentro Chrome invece vedo qui
che è quella che ti prepara requests.

Scusami.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
2015-01-28 15:06 GMT+01:00 Marco Beri marcob...@gmail.com:

 No, scusa, un momento. Ho risposto a un semaforo rosso per cui posso aver
 capito male.

 Pensavo che quell'URL forse quella che vedevi dentro Chrome invece vedo
 qui che è quella che ti prepara requests.

 Scusami.


Di nulla, tranquillo, il posto a destra di Guido rimane tuo ;)

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
On 28 January 2015 at 14:53, Carlos Catucci carlos.catu...@gmail.com
wrote:

 Fai una GET e non una POST, lasciando data.


Nulla e' cambiato, ne scrivendo


 param = {'script':'biglietti_da_visita.js',
'data_modifica':'21112014_0907'}
 data = dict(func='getPreventivo', name='preventivo', param=param)
 r2 = s.get(url2, data=data)
 print r2.text

ne facendo

 param = {'script':'biglietti_da_visita.js',
'data_modifica':'21112014_0907'}
 data = dict(func='getPreventivo', name='preventivo', param=param)
 prepared = requests.Request(url=url2).prepare()
 prepared.prepare_url(prepared.url, data)
 r2 = s.get(prepared.url)
 print r2.text

eppure guardando dal debugger del browser ottengo


   1. Request Method:
   POST
   2. Status Code:
   200 OK


   1. *Form Data*
   2. func:
   getPreventivo
   3. name:
   preventivo
   4. param[script]:
   biglietti_da_visita.js
   5. param[data_modifica]:
   21112014_0907

per cui deve essere possibile passare i parametri in quel modo li.

Per aiutare,

 print r2
torna

Response [200]

quindi il WebServce riceve la chiamata e reagisce bene solo che non
riconoscendo la struttura torna vuoto (o meglio 8 blank spaces)
Ah ho appena povato a encodare in json data quando lo passo alla
perapred.prepare_ur, nessun apprezzabile cambiamento

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Marco Beri
2015-01-28 15:07 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 eppure guardando dal debugger del browser ottengo


1. Request Method:
POST
2. Status Code:
200 OK


1. *Form Data*
2. func:
getPreventivo
3. name:
preventivo
4. param[script]:
biglietti_da_visita.js
5. param[data_modifica]:
21112014_0907

 per cui deve essere possibile passare i parametri in quel modo li.

Ah! Ora ho capito la domanda iniziale :-)

Prova con:

data = {func: getPreventivo, name: preventivo, param[script]:
biglietti_da_visita.js, param[data_modifica]: 21112014_0907}

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Riccardo Brazzale
Il giorno 28 gennaio 2015 13:55, Robotica li...@robotica.it ha scritto:

 m'è venuto un brivido da sudore freddo
 ora è passato


Non colsi l'ironia.
Puoi spiegare?

Grazie


-- 
Riccardo Brazzale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Robotica
On 01/28/2015 02:25 PM, Riccardo Brazzale wrote:
 Non colsi l'ironia.
 Puoi spiegare?

 Grazie

nulla di personale, vecchi ricordi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Marco Beri
On Jan 28, 2015 2:49 PM, Carlos Catucci carlos.catu...@gmail.com wrote:

 Salve gente sono ancora qui a rompere.

 Problema similare alla volta scorsa ma con una piccola complicazione.
 I parametri che devo passare con il post alla chiamata al webservice sono
stavolta incaprettati.

 data stavolta prevede

 func: 'getPreventivo'
 name: 'preventivo'
 param[script]: 'biglietti_da_visita.js'
 param[data_modifica]: '21112014_0907'

 In apparenza basterebbe fare

  param = {'script':'biglietti_da_visita.js',
'data_modifica':'21112014_0907'}
  data = dict(func='getPreventivo', name='preventivo', param=param)

 oppure

  data = dict(func='getPreventivo', name='preventivo',
param=dict(func='getPreventivo', name='preventivo')

 ma se poi provo a vedere che razza di URL passi la chiamata con

  prepared = requests.Request(url=url2).prepare()
  prepared.prepare_url(prepared.url, data)
  print prepared.url

 sorpresa sorpresa ottengo


http://www.pixartprinting.it/core/phpLink.php?param=data_modificaparam=scriptname=preventivofunc=getPreventivo

 ovvero una struttura flat dove ho due volte param come chiave e script e
getPreventivo come valori. Il mio problema (lo so che dee essere una cosa
diota, ma non mi viene e non riesco a trovare esempi) e' come passare
parametri in quella forma.
 Se provo a passare i due ribaldi con una struttura tipo

  data = dict(func='getPreventivo', name='preventivo',
func='getPreventivo', name='preventivo')

 si ostina non funzionare (torna un content vuoto come il mio conto
corrente)

 Graditi suggerimenti, per gli insulti in matrix (chi e' stato point
FidoNet puo' capire)

Fai una GET e non una POST, lasciando data.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
2015-01-28 15:30 GMT+01:00 Marco Beri marcob...@gmail.com:

 data = {func: getPreventivo, name: preventivo, param[script]:
 biglietti_da_visita.js, param[data_modifica]: 21112014_0907}


Birra pagata alla PyCon (cazzo quest'anno DEVO esserci) e' ancora poco.
La genialata di mettere param[script] tra apici non mi era venuta proprio

Muchas gracias
Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Riccardo Brazzale
Ciao a tutti,

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.


Grazie

-- 
Riccardo Brazzale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Julia (Was: Walks like Python. Runs like C).

2015-01-28 Per discussione Carlos Catucci
2015-01-28 9:33 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com:

 Condivido con voi le personali considerazioni che questo PhD Student
 Brasiliano fa di python come linguaggio di programmazione per i
 giochi.

 http://guineashots.com/2014/07/14/python-engines-for-2d-games-and-a-lot-of-problems/


Ecco lo sapevo, posti sempre roba di troll rubysti ;)
Scherzi a parte penso di condividere in gradissima parte cio' che dice.
Se avessi tempo mi piacerebbe collaborare con Pyglet (a onor del vero lo
trovo piu' pythonico, come sintassi, del suo fratello anziano).

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Carlos Catucci
2015-01-28 10:35 GMT+01:00 Riccardo Brazzale riccardo.brazz...@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@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Riccardo Brazzale
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.catu...@gmail.com
ha scritto:


 2015-01-28 10:35 GMT+01:00 Riccardo Brazzale riccardo.brazz...@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@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Riccardo Brazzale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Scrivere giochi con Python

2015-01-28 Per discussione Nicola Larosa
[Sarà ora di aprire un nuovo thread, no?]


 Marco Ippolito wrote:
 Condivido con voi le personali considerazioni che questo PhD Student
 Brasiliano fa di python come linguaggio di programmazione per i
 giochi:
 
 Python Engines for 2D Games and a Lot of Problems 
 http://guineashots.com/2014/07/14/python-engines-for-2d-games-and-a-lot-of-problems/

L'articolo è di luglio 2014. Pygame lo lascerei alla decade scorsa ormai.


Renato Pereira wrote:
 Pyglet is the alternative to Pygame. It is built upon opengl and it
 is a lot faster than Pygame. The Cocos2D engine was created as a 
 framework upon Pyglet.

Pyglet è un gioiellino, e Cocos2D ha avuto un successo inaspettato fuori
da Python con vari port, diventando uno dei framework di giochi più usato
su iOS.


 The problem is, Pyglet is unstable, with a lot of problems, mainly on 
 Mac OS. The community is nearly zero, it is poor documented and is 
 also rarely updated (with less activities than Pygame).

2014 è stato un anno lento per Pyglet ma l'attività è ripresa di slancio
quest'anno: la v.1.2 sembra essere finalmente in arrivo, e c'è perfino
gente che cerca di farlo rifunzionare su OS/X. :-)

pyglet-users http://groups.google.com/group/pyglet-users

Il repository è stato spostato da Google a BitBucket:

https://bitbucket.org/pyglet/pyglet

Non tutto il mondo si è ancora arreso a git e Github. :-P

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/

Non facciamo convegni. O meglio facciamo convegni senza convegno.
Visto che poi ai convegni le cose importanti ce le si dice al bar
abbiamo deciso di fare convegni con solo il bar, senza le relazioni
e i microfoni. - Jacopo Fo, settembre 2014
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Robotica
On 01/28/2015 11:39 AM, Riccardo Brazzale wrote:
 Avevo tralasciato che la codifica su AS400 (iseries) e' EBCDIC

m'è venuto un brivido da sudore freddo
ora è passato
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sono incartato (hex to ascii?)

2015-01-28 Per discussione Diego Barrera

Il 28/01/2015 13:55, Robotica ha scritto:

On 01/28/2015 11:39 AM, Riccardo Brazzale wrote:

Avevo tralasciato che la codifica su AS400 (iseries) e' EBCDIC

m'è venuto un brivido da sudore freddo
ora è passato

ROTFL
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Marco Beri
2015-01-28 15:35 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:


 2015-01-28 15:30 GMT+01:00 Marco Beri marcob...@gmail.com:

 data = {func: getPreventivo, name: preventivo, param[script]:
 biglietti_da_visita.js, param[data_modifica]: 21112014_0907}


 Birra pagata alla PyCon (cazzo quest'anno DEVO esserci) e' ancora poco.
 La genialata di mettere param[script] tra apici non mi era venuta proprio


Figurati :-)

A volte la soluzione più facile è quella che ci sfugge.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] RRD

2015-01-28 Per discussione Lorenzo Mainardi
Buongiorno a tutti,
devo lavorare con numerosi file RRD (quasi 10.) e vorrei farlo con
Python.
Ho visto che nei repository ci sono sia pyrrd che python-rrdtool. Quale dei
due mi consigliate e perchè?
Grazie mille

-- 
LORENZO MAINARDI
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Marco Ippolito
Scusa se non sono stato chiaro.

Il problema è quello della sostituzione di simboli tipo ”, o tipo
è, con simboli più facilmente manipolabili, esempio ' e e'.
Per cui ho messo queste coppie di simbolo-sostituto all'interno di un file json.

Quello che vorrei fare è iterare l'operazione di sostituzione in un
modo che sia più elegante ma anche più efficiente rispetto a quello
che ho fatto:
self.extracted_text_u = self.extracted_text_u.replace(“,
self.textManipulation[to_substitute][unicode(“, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(”,
self.textManipulation[to_substitute][unicode(”, utf-8)])
.
self.extracted_text_u = self.extracted_text_u.replace(é,
self.textManipulation[to_substitute][unicode(é, utf-8)])
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] sAghe mentali

2015-01-28 Per discussione Carlos Catucci
Create A Currency Converter in PHP, Python, Javascript and jQuery using
Yahoo Currency API http://goo.gl/C8EFl4

E comunque ad una occhiata superficiale la soluzione Python non mi sembra
per nulla pythonica

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Riccardo Magliocchetti

Ciao Marco,

Il 28/01/2015 18:15, Marco Ippolito ha scritto:

Ciao a tutti,

ho messo in file json alcune possibili sostituzioni di simboli
all'interno di un testo:


Potrebbe essere utile prima di postare le tue soluzioni anche porre il 
problema e un pò di contesto :)


riccardo

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] RRD

2015-01-28 Per discussione Simone Federici
Lorenzo Mainardi:

 devo lavorare con numerosi file RRD (quasi 10.) e vorrei farlo con
 Python.
 Ho visto che nei repository ci sono sia pyrrd che python-rrdtool. Quale
 dei due mi consigliate e perchè?


Guardati pure Whisper (Graphite subproject) e perché non usano RRD.
http://graphite.wikidot.com/whisper

Comunque io a suo tempo usai python-rrdtools che poi se non erro sono i
bindings ufficiali.
Chiama direttamente gli eseguibili rrd* con relativi parametri, esattamente
identici a come lo useresti command line.
Programmazione procedurale nuda e cruda con parametri formato string.
(brutta a piacere)

 rrdtool.graph(path,
  '--imgformat', 'PNG',
  '--width', '540',
  '--height', '100',
  '--start', -%i % YEAR,
  '--end', -1,
  '--vertical-label', 'Downloads/Day',
  '--title', 'Annual downloads',
  '--lower-limit', '0',
  'DEF:downloads=downloads.rrd:downloads:AVERAGE',
  'AREA:downloads#990033:Downloads')


da quello che vedo pyRRD è un wrapper pure python ci sono gli oggetti
python anziche stringhe. quindi fatto salvo si siano scordati alcune
funzionalità dovrebbe essere più bella.

dataSource = DataSource(
... dsName='speed', dsType='COUNTER', heartbeat=600)
 dataSources.append(dataSource)
 roundRobinArchives.append(RRA(cf='AVERAGE', xff=0.5, steps=1, rows=24))
 roundRobinArchives.append(RRA(cf='AVERAGE', xff=0.5, steps=6, rows=10))

cmq, sotto sotto sempre gli eseguibili rrd* vengono invocati.
Comunque non è tanto il numero di RRD files che di deve far preoccupare, ma
la frequenza con cui gli aggiorni.

se hai domande bloccanti non esitare, mi ci sono scontrato a fondo sia in
python che command line che in java.

ciao
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino di chiamata POST

2015-01-28 Per discussione Carlos Catucci
A volte la soluzione più facile è quella che ci sfugge.

Infatti era l'attimo (s)fuggente ;)

Carlos
--
E.Z.L.N. ... para todos, todo ... nada para nosotros ...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Riccardo Magliocchetti

Ciao Marco,

Il 28/01/2015 18:32, Marco Ippolito ha scritto:

Scusa se non sono stato chiaro.

Il problema è quello della sostituzione di simboli tipo ”, o tipo
è, con simboli più facilmente manipolabili, esempio ' e e'.
Per cui ho messo queste coppie di simbolo-sostituto all'interno di un file json.


Ho capito che questo è quello che hai fatto. Quello che io mi chiedo è: 
perchè lo devi fare? che problema risolvi facendolo? Spesso perdiamo 
tempo a risolvere problemi che ci auto infliggiamo :)
Posso capire i caratteri unicode ma sostituire i caratteri latini tipo 
le lettere accentate non lo capisco. Devi trasformarli in ASCII o altro 
charset particolare? Se è una questione di encoding, con le stringhe 
unicode in python 2.7 puoi fare così per esempio:


 u = u'#ð@đß'
 u.encode('ascii')
Traceback (most recent call last):
  File stdin, line 1, in module
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf0' in 
position 1: ordinal not in range(128)

 u.encode('ascii', 'ignore')
'#@'

Dove quello che non riesce a convertire nel charset richiesto viene 
ignorato. Hai altri modi di trattare gli errori, vedi 
https://docs.python.org/2/howto/unicode.html


Detto questo se non puoi perdere pezzi nella traduzione io farei 
qualcosa del genere:


def sanitize(c):
# TODO: tutti i maneggi con unicode che ti servono
conv = conversion_table.get(c):
if conv:
return  conv
return c

# puoi anche usare map se ti aggrada
notanunicode_string = ''.join([sanitize(c) for c in unicode_string])

Così fai solo un giro per ogni carattere della tua stringa

riccardo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Marco Ippolito
Mille grazie a tutti per gli spunti di soluzione che mi avete dato.
Li provo uno ad uno.

Ho provato ora questa:

def remove_accent(self, input_str):
nfkd_form = unicodedata.normalize('NFKD', unicode(input_str))

return u.join([ch for ch in nkfd_form if not
unicodedata.combining(c)])
self.extracted_text_u = self.remove_accent(self.extracted_text_u)

  File extract_sentences.py, line 34, in remove_accent
nfkd_form = unicodedata.normalize('NFKD', unicode(input_str))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
16: ordinal not in range(128)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Giovanni Porcari

 Il giorno 28/gen/2015, alle ore 18:15, Marco Ippolito 
 ippolito.ma...@gmail.com ha scritto:
 
 Ciao a tutti,
 
 ho messo in file json alcune possibili sostituzioni di simboli
 all'interno di un testo:
to_substitute:{
“: ',
”: ',
—: -,
’: ',
è: e',
é: e'
}
 
 facendo così:
 self.extracted_text_u = self.extracted_text_u.replace(“,
 self.textManipulation[to_substitute][unicode(“, utf-8)])
 self.extracted_text_u = self.extracted_text_u.replace(”,
 self.textManipulation[to_substitute][unicode(”, utf-8)])
 self.extracted_text_u = self.extracted_text_u.replace(—,
 self.textManipulation[to_substitute][unicode(—, utf-8)])
 self.extracted_text_u = self.extracted_text_u.replace(’,
 self.textManipulation[to_substitute][unicode(’, utf-8)])
 self.extracted_text_u = self.extracted_text_u.replace(è,
 self.textManipulation[to_substitute][unicode(è, utf-8)])
 self.extracted_text_u = self.extracted_text_u.replace(é,
 self.textManipulation[to_substitute][unicode(é, utf-8)])
 
 sostituisco all'interno di un testo alcuni simboli con il
 corrispettivo messo nel file json.
 
 Ma questa soluzione, pur funzionando, non è granchè
 per cui ho importato le coppie simbolo-sostituto in un dictionary:
 self.to_substitute_dictionary = self.textManipulation[to_substitute]
 {u'\xe9': e', u'\xe8': e', u'\u2014': '-', u'\u2019': ',
 u'\u201d': ', u'\u201c': '}
 
 for k, v in self.to_substitute_dictionary.iteritems():
print k, v
 é e'
 è e'
 — -
 ’ '
 ” '
 “ '
 
 Quando invece faccio:
 for k, v in self.to_substitute_dictionary.iteritems():
  self.extracted_text_u = self.extracted_text_u.replace(k, v)
 
  File extract_sentences.py, line 56, in sentences_extraction_meth
self.extracted_text_u = self.extracted_text_u.replace(k, v)
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
 16: ordinal not in range(128)
 
 E se faccio:
 for k, v in self.to_substitute_dictionary.iteritems():
 v_u = unicode(v, utf-8)
 self.extracted_text_u = self.extracted_text_u.replace(k, v_u)
 
   self.extracted_text_u = self.extracted_text_u.replace(k, v_u)
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
 16: ordinal not in range(128)
 
 for k, v in to_substitute_dictionary.iteritems():
 ... v_u = unicode(v, utf-8)
 ... print (type(k), type(v_u))= , (type(k), type(v_u))
 ...
 (type(k), type(v_u))=  (type 'unicode', type 'unicode')
 (type(k), type(v_u))=  (type 'unicode', type 'unicode')
 (type(k), type(v_u))=  (type 'unicode', type 'unicode')
 
 Deve essere una stupidata.qualche consiglio?
 
 Marco




Butto lì una soluzione rapida ...


#-*- coding: UTF-8 -*-
import re
chardict={u“: ',
  u”: ',
  u—: -,
  u’: ',
  uè: e',
  ué: e'}
  
SUBS=re.compile(u([%s]) %'|'.join(chardict.keys()))

s=uMario disse “non so perché non so chi è” 

print SUBS.sub(lambda m:chardict[m.group(1)],s)


Mario disse 'non so perche' non so chi e'' 



Spero ti sia utile.

Ciao

G

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Simone Federici
import unicodedata

def remove_accents(input_str):
nkfd_form = unicodedata.normalize('NFKD', unicode(input_str))
return u.join([c for c in nkfd_form if not unicodedata.combining(c)])

u'gli devi passare un unicode'

dicci se funziona

http://stackoverflow.com/questions/517923/what-is-the-best-way-to-remove-accents-in-a-python-unicode-string




-- 
Simone Federici

Software Craftsman
XP, Agile, Scrum, Kanban
Quality, performance  security

Explicit is better than implicit.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Giovanni Porcari

 Il giorno 29/gen/2015, alle ore 08:22, Simone Federici s.feder...@gmail.com 
 ha scritto:
 
 import unicodedata
 def remove_accents(input_str): nkfd_form = unicodedata.normalize('NFKD', 
 unicode(input_str)) return u.join([c for c in nkfd_form if not 
 unicodedata.combining(c)])
 u'gli devi passare un unicode'
 dicci se funziona
 http://stackoverflow.com/questions/517923/what-is-the-best-way-to-remove-accents-in-a-python-unicode-string
 
 
 

Mi pare non volesse rimouvere l'accento ma sostituire una accentata con 
la lettera non accentata e il simbolo apice.


Esempio però -- pero'

Ciao

G
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Domanda facile facile su caso manipolazione unicode

2015-01-28 Per discussione Marco Ippolito
Ciao a tutti,

ho messo in file json alcune possibili sostituzioni di simboli
all'interno di un testo:
to_substitute:{
“: ',
”: ',
—: -,
’: ',
è: e',
é: e'
}

facendo così:
self.extracted_text_u = self.extracted_text_u.replace(“,
self.textManipulation[to_substitute][unicode(“, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(”,
self.textManipulation[to_substitute][unicode(”, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(—,
self.textManipulation[to_substitute][unicode(—, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(’,
self.textManipulation[to_substitute][unicode(’, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(è,
self.textManipulation[to_substitute][unicode(è, utf-8)])
self.extracted_text_u = self.extracted_text_u.replace(é,
self.textManipulation[to_substitute][unicode(é, utf-8)])

sostituisco all'interno di un testo alcuni simboli con il
corrispettivo messo nel file json.

Ma questa soluzione, pur funzionando, non è granchè
per cui ho importato le coppie simbolo-sostituto in un dictionary:
self.to_substitute_dictionary = self.textManipulation[to_substitute]
{u'\xe9': e', u'\xe8': e', u'\u2014': '-', u'\u2019': ',
u'\u201d': ', u'\u201c': '}

for k, v in self.to_substitute_dictionary.iteritems():
print k, v
é e'
è e'
— -
’ '
” '
“ '

Quando invece faccio:
for k, v in self.to_substitute_dictionary.iteritems():
  self.extracted_text_u = self.extracted_text_u.replace(k, v)

  File extract_sentences.py, line 56, in sentences_extraction_meth
self.extracted_text_u = self.extracted_text_u.replace(k, v)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
16: ordinal not in range(128)

E se faccio:
for k, v in self.to_substitute_dictionary.iteritems():
 v_u = unicode(v, utf-8)
 self.extracted_text_u = self.extracted_text_u.replace(k, v_u)

   self.extracted_text_u = self.extracted_text_u.replace(k, v_u)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
16: ordinal not in range(128)

 for k, v in to_substitute_dictionary.iteritems():
... v_u = unicode(v, utf-8)
... print (type(k), type(v_u))= , (type(k), type(v_u))
...
(type(k), type(v_u))=  (type 'unicode', type 'unicode')
(type(k), type(v_u))=  (type 'unicode', type 'unicode')
(type(k), type(v_u))=  (type 'unicode', type 'unicode')

Deve essere una stupidata.qualche consiglio?

Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python