Skript v Pythonu na převod JSONu do XML

Ve čtvrtém semestru na VUT FIT jsem měl v předmětu IPP – Principy programovacích jazyků a objektově orientované programování (nechutně dlouhý název předmětu 🙂 ) za úkol mimo jiné napsat skript v Pythonu pro převod JSON formátu do XML. Převod měl proběhnout podle předem dané struktury s požadavkem validního XML. Protože tento skript se mi zdá užitečný a měl jsem ho ohodnocen plným počtem bodů, můžete si jej níže stáhnout a používat, případně upravit.

S Pythonem jsem předtím neměl tu čest se seznámit, takže toto je v podstatě můj první výtvor v tomto skriptovacím jazyce a podle toho to asi i vypadá 🙂 Nicméně skript je funkční a při testování jsem nepřišel na žádný bug. Pokud nějaký objevíte, budu rád, když mne kontaktujete, abych mohl chybu opravit.

Co skript umí?

Jak už jsem psal, skript přijímá na standardním vstupu JSON a na standardní vstup (případně do souboru viz níže) vypisuje odpovídající XML. Skript pracuje s následujícími parametry (částečná parafráze ze zadání):

–help vypíše nápovědu na standardní výstup

–input=filename.ext vstupní soubor s JSON pro převod, může být zadán relativní nebo absolutní cestou

–output=filename.ext výstupní soubor, kam se zapíše výstupní XML

-n negenerovat XML hlavičku

-r=root-element jméno párového kořenového elementu obalujícího výsledek. Pokud nebude zadán, tak se výsledek neobaluje kořenovým elementem, ač to potenciálně porušuje validitu XML

-s hodnoty dvojic typu string budou transformovány na textové elementy místo atributů

-i hodnoty dvojic number budou transformovány na textové elementy místo atributů

-l hodnoty literálů (true, false, null) budou transformovány na textové elementy <true/>, <false/> a <null/> místo na atributy

– e zotavení z chybějícího obalení pole kořenovým objektem tj. globální pole bude obaleno kořenovým objektem (nutno kombinovat s parametrem -r; jinak vrátí chybovou hlášku)

Stažení skriptu a programové dokumentace

Skript společně s programovou dokumentací si můžete stáhnout v jednom ZIP archivu.  

Martin Šimko

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

CommentLuv badge