[Python] Problemino di chiamata POST
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 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
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 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
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 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?)
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?)
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
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 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?)
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 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 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?)
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
[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?)
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?)
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 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
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
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
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
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
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
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
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
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
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
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
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
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