Il 26 gennaio 2015 08:08, Gollum1 <gollum1.smeag...@gmail.com> ha scritto: > Giorno Lista, > > oggi sono arrivato presto al lavoro, e visto che nessuno rompe, ho > ripreso in mano il mio programmino fermo da parecchio... > > attraverso il modulo requests riesco ad ottenere una stringa > contenente l'XML con tutti i parametri dell'utente loggato alla pagina > chiamata da requests. > > sto usando xml.parsers.expat per analizzarla, e vorrei fare in modo > che gli attributi che trovo per i vari tag xml vengano restituiti come > dizionario {nome_tag: attributo_uri} > > ho usato questo codice di esempio: > https://docs.python.org/3.4/library/pyexpat.html#example > > e fino a che nelle prove stampo i tag e gli attributi, tutto va bene, > ma come faccio a fare il return di una voce di dizionario? > > pensavo di mettere: > > def start_element(name, attrs): > if 'uri' in attrs.keys(): > return{name: attrs['uri']} > > ma chi è il chiamante effettivo, visto che in realtà è come se io > avessi inettato la mia funzione all'interna della classe del parser? > > Byez > -- > Gollum1 - http://www.gollumone.it > Tesssssoro, dov'é il mio tessssoro...
naturalmente se uso una variabile esternda al def, la cosa funziona, urls = dict() def start_element(name, attrs): if 'uri' in attrs.keys(): urls[name] = attrs['uri'] personalmente però ho sempre cercato di evitare di usare delle variabili "globali" all'interno di definizioni di funzioni... se lo faccio solitamente è perché sono comunque all'interno di una classe, ma in questo caso non ho necessità di refernziare una nuova classe solo per l'analisi di questo file xml, una volta ottenuto questi uri non me ne faccio più nulla. mi sto facendo troppe pippe per nulla? Byez -- Gollum1 - http://www.gollumone.it Tesssssoro, dov'é il mio tessssoro... _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python