Timer86
Profilo di
Nome | Timer86 |
---|---|
Indirizzo email | n/a |
Messaggi | 4 |
-
- 2022-07-01 11:03:06
- Re: Fattura elettronica e lettura xml
- Forum >> Principianti
- Risolto così
if len(obj.findall('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento')): for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'): from datetime import datetime print(scadenza.text) self.worksheet.write(row, column + 8, scadenza.text) newscad = scadenza.text[0:10] scad1 = datetime.strptime(newscad, "%Y-%m-%d") else: for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'): from datetime import timedelta, date, datetime scad1= datem + timedelta(days=int(scadenza1.text)) print(f'New Expire {scad1}') newdate = datetime.strftime(scad1, "%Y-%m-%d") self.worksheet.write(row, column + 8, newdate)
-
- 2022-06-30 12:19:41
- Re: Estrarre dati da fattura elettronica PA
- Forum >> Principianti
- Ciao,
io ho usato iterfind, però , nasce un problema. Se il campo datascadenza di pagamento non esiste, pensavo che mi rendesse un campo scadenza.text vuto, e dunque potessi procedere alla ricerca del campo successivo, invece sembra di no. non mi da errore, semplicemente non va al ciclo if successivo se scadenza.text è vuoto.for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'): print(scadenza.text) #print thee expiration date if (not scadenza.text): for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'): from datetime import timedelta, date d1 = datem + timedelta(days=int(scadenza1.text)) print(f'New Expire {d1}') scadenza.text = d1
-
- 2022-06-29 18:05:51
- Fattura elettronica e lettura xml
- Forum >> Principianti
- Ciao a tutti,
sto studiando python per lavoro principalmente, e sto seguendo un mini progetto che mi permette di andare a scrivere su un file excel tutti i file xml e i campi che necessito.
Ora, non ho problemi con nessun campo, l'automazione / script funziona già perfettamente, a parte per una cosa soltanto.
alcuni xlm hanno questo path(vedete in basso) altri ne hanno questo.
- 'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'
altri hanno questo path
-'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'
io vorrei estrarre questo campo(il primo) vedere se c'è effettivamente quel campo, se sì prendo il valore, altrimenti prelevo quello sotto e lo sommo alla data di fattura .
il problema che detengo è che nessuan condizione di questo for, e dei sottostanti si avvera mai, sembra skipparlo sempre e comunque e dunque non riesco ad andare al secondo pezzo.
Purtroppo mi sono incartato, avete qualche consiglio da darmi? suggerimento? ci sto perdendo la testa.
for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):
print(scadenza.text) #print thee expiration date
print (scadenza.attrib)
if not scadenza.attrib:
for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):
from datetime import timedelta, date
d1 = datem + timedelta(days=int(scadenza1.text))
print(f'New Expire {d1}')
scadenza.text = d1
--- Ultima modifica di Timer86 in data 2022-06-29 18:06:30 ---
-
- 2022-06-29 18:05:40
- Fattura elettronica e lettura xml
- Forum >> Principianti
- Ciao a tutti,
sto studiando python per lavoro principalmente, e sto seguendo un mini progetto che mi permette di andare a scrivere su un file excel tutti i file xml e i campi che necessito.
Ora, non ho problemi con nessun campo, l'automazione / script funziona già perfettamente, a parte per una cosa soltanto.
alcuni xlm hanno questo path(vedete in basso) altri ne hanno questo.
- 'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'
altri hanno questo path
-'FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'
io vorrei estrarre questo campo(il primo) vedere se c'è effettivamente quel campo, se sì prendo il valore, altrimenti prelevo quello sotto e lo sommo alla data di fattura .
il problema che detengo è che nessuan condizione di questo for, e dei sottostanti si avvera mai, sembra skipparlo sempre e comunque e dunque non riesco ad andare al secondo pezzo.
Purtroppo mi sono incartato, avete qualche consiglio da darmi? suggerimento? ci sto perdendo la testa.
for scadenza in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/DataScadenzaPagamento'):
print(scadenza.text) #print thee expiration date
print (scadenza.attrib)
if not scadenza.attrib:
for scadenza1 in obj.iterfind('FatturaElettronicaBody/DatiPagamento/DettaglioPagamento/GiorniTerminiPagamento'):
from datetime import timedelta, date
d1 = datem + timedelta(days=int(scadenza1.text))
print(f'New Expire {d1}')
scadenza.text = d1