Handle 1 bis n Elemente

9

Ich verwende xmltodict, um eine XML-Konfiguration zu analysieren. Das XML hat Strukturen, in denen ein Element in 1 bis n Instanzen vorkommen kann, in denen beide gültig sind:

%Vor%

und

%Vor%

Ich analysiere das mit xmltodict wie folgt:

%Vor%

und es gibt einen einzelnen Unicode oder eine Liste zurück (abhängig von den gefundenen Elementen), daher muss ich immer eine zusätzliche Überprüfung hinzufügen, um sicherzustellen, dass ich mit einer Liste oder einem String umgehen muss:

%Vor%

Gibt es eine bessere / einfachere / elegantere Art, mit diesen umzugehen?

    
balas 15.12.2014, 15:10
quelle

1 Antwort

4

Ich bin mir nicht sicher, ob ich das super elegant machen könnte. Python verfügt über keine integrierten Methoden oder Funktionen, die Ihnen dabei helfen, dies in einer einzigen Codezeile zu tun. Dennoch, im Interesse der Konsolidierung von Code, werden Sie etwas tun wollen. Wie matsjocece in einem Kommentar erwähnt, möchten Sie vielleicht einfach eine Funktion erstellen, die sich um diese Logik kümmert.

%Vor%

Jetzt können Sie einfach diese Funktion mit Ihrem Wert aufrufen und erwarten, dass ein list zurückgegeben wird, egal ob es sich um ein list , ein int oder ein NoneType Objekt handelt:

%Vor%

(Meine erste Antwort hat eine Unterklasse von list erstellt, aber das dauert 6 statt 4 Zeilen und ändert den type - nicht den idealen Nebeneffekt.)

    
πόδας ὠκύς 15.12.2014, 17:07
quelle

Tags und Links