Acquisizione dei dati in base all'indice

0

Ho sviluppato un programma per leggere il testo nei file e acquisire informazioni e scriverlo in un file CSV.

Ogni "campo" è identificato da un indice, un'etichetta e un valore, ad esempio:

.0 index
.0.label unicode "Area"
.0.value unicode "6WAY DB"
.1 index
.1.label unicode "SubStation"
.1.value unicode "E782DB257"
.2 index
.2.label unicode "MCC ID"
.2.value unicode ""
.3 index
.3.label unicode "Feeder"
.3.value unicode ""
etc...

In questo CSV, catturo la "etichetta" come intestazione di colonna, quindi il "valore" come i dati per ogni record - abbastanza semplice. Tuttavia, la situazione inizia a diventare complessa quando alcuni file hanno informazioni diverse, in particolare etichette diverse.

Creare la riga di intestazione non è una cosa così difficile, ma accertarsi che i dati siano acquisiti correttamente è una questione diversa. Ad esempio,

File A:

.0 index
.0.label unicode "Area"
.0.value unicode "6WAY DB"

File B:

.0 index
.0.label unicode "SubStation"
.0.value unicode "110"

Ciò significa che ho bisogno di identificare in qualche modo che anche se questi sono i primi elementi in ogni file, ho bisogno di identificarli come campi separati. Stavo pensando di utilizzare i tag di indice come parte della costruzione della riga di intestazione della colonna o persino di utilizzare le etichette come tag per ogni campo, in modo che possano essere inseriti nell'ordine corretto?

Ad esempio, vorrei costruire l'intestazione della colonna in questo modo:

[0: Area, 1: Equipment, …]

Quindi, durante la lettura del file, utilizzalo per identificare la posizione appropriata per ciascun campo

filename | Area    | SubStation | Other
File A   | 6WAY DB | E782DB257  |
File B   |         | 110        |
etc...

Posso / dovrei usare gli array per questo? o c'è un modo per catturare queste informazioni?

    
posta Ben 24.05.2018 - 06:14
fonte

0 risposte

Leggi altre domande sui tag