Príklad konfiguračného súboru TOML
Špecifikácia pre TOML zahŕňa použitie párov kľúč - hodnota, ktoré rozlišujú veľké a malé písmená. Klávesy sú na ľavej strane, zatiaľ čo hodnoty budú na pravej strane; tieto pojmy sú od seba oddelené znamienkom rovnosti. Páry kľúč - hodnota sú identické so syntaxou deklarácie premennej, ktorú uvidíte vo väčšine programovacích jazykov. Môžete tiež definovať tabuľky a podtabuľky (oddiely a pododdiely) v hranatých zátvorkách, aby ste udržali usporiadané páry kľúč - hodnota pre vylepšenú logiku syntézy a aplikáciu vo svojich programoch. Hodnoty môžu byť typu string, integer, float, boolean, array a time and date. TOML umožňuje použitie syntaxe bodiek, takže môžete definovať tabuľku (sekciu) ako „tabuľku“.podtabuľka “alebo kľúč ako„ kľúč.identifikátor “. Prípona súboru použitá pre súbor TOML je .hrobka. Nižšie je uvedený skrátený príklad súboru TOML:
name = "PC hra"[predvolené]
profile_name = "Profil"
player_name = "Player"
profile_created = 1979-05-27T07: 32: 00-08: 00
zvuk = pravda
[užívateľ]
[užívateľ.profil]
name = "profil1"
player_name = "player1"
trieda = "bojovník"
[užívateľ.nastavenie]
zvuk = nepravda
[default_inventory]
warrior = [["meč", "štít"], ["tanierové brnenie", "tanierové kormidlo"]]
mág = [[„štáb“, „prútik“], [„župan“, „kukla“]]
položky = [
"liečivý nápoj",
„protijed“,
"lektvar many"
]
Pre porovnanie, ten istý konfiguračný súbor je napísaný v JSON nižšie:
"name": "PC hra",
"predvolené":
"profile_name": "Profile",
"player_name": "Player",
"profile_created": "1979-05-27T15: 32: 00.000Z ",
"zvuk": pravda
,
"user":
"profil":
"name": "profile1",
"player_name": "player1",
"class": "warrior"
,
"nastavenie":
"zvuk": nepravda
,
"default_inventory":
"warrior": [
[
„meč“,
„štít“
],
[
„tanierové brnenie“,
„tanierová kormidlo“
]
],
"mág": [
[
„štáb“,
„prútik“
],
[
„župan“,
„kapucňa“
]
],
"items": [
"liečivý nápoj",
„protijed“,
"lektvar many"
]
Rozdiely medzi formátmi súborov JSON a INI
TOML je v mnohých ohľadoch podobný formátom JSON a INI, s niekoľkými rozdielmi, ktoré určia, ktorý formát súboru budete chcieť použiť. Formát súboru TOML zdôrazňuje čitateľnosť pre človeka a jeho čítanie sa zdá byť oveľa čistejšie. Súbory INI nepodporujú vnorené sekcie a vnorené páry kľúč - hodnota. Na rozdiel od JSON umožňuje TOML komentáre (so symbolom #). Údaje s dlhým vnorením do súboru JSON je možné zapísať do jazyka TOML iba na pár riadkov.
Môže však byť mätúce správne identifikovať štruktúru v dlho vnorených hierarchiách v TOML, zatiaľ čo v JSON je štruktúra oveľa jasnejšia, aj keď sa vnorené údaje môžu javiť ako podrobné. TOML je primárne určený pre konfiguračné súbory a nie pre veľké súbory štruktúrovaných údajov, zatiaľ čo formát JSON je vhodný pre ľubovoľnú škálu štruktúrovaných údajov.
Modul Python TOML
Štandardné knižnice Pythonu v čase písania tohto článku v súčasnosti nepodporujú analýzu údajov TOML. To sa môže zmeniť po TOML verzie 1.0.0 sa uvoľní. Zatiaľ budete musieť použiť modul Python tretej strany s názvom hrobka. Tento modul môžete nainštalovať do Ubuntu pomocou jedného z nižšie uvedených príkazov:
$ sudo apt nainštalovať python3-toml$ pip3 nainštalovať toml
Analýza súboru TOML pomocou modulu Python TOML
Analýza súboru TOML pomocou modulu python3-toml je pomerne jednoduchá. Môžete použiť buď „hrobku“.načítať “na analýzu celého súboru, alebo môžete použiť„ toml.Načíta ”na analýzu ktoréhokoľvek konkrétneho páru kľúč - hodnota vo formáte TOML. Za predpokladu „dát.súbor toml ”obsahuje reťazce formátované TOML uvedené v príklade vyššie, nižšie uvedený kód analyzuje a vytlačí údaje TOML ako slovník pythonu:
#!/ usr / bin / env python3importná hrobka
tlač (toml.načítať ("údaje.hrob "))
Spustenie vyššie uvedeného kódu spôsobí nasledujúci výstup:
'name': 'PC Game', 'default': 'profile_name': 'Profile', 'player_name': 'Player','profile_created': dátum a čas.dátum a čas (1979, 5, 27, 7, 32, tzinfo =
'player_name': 'player1', 'class': 'warrior', 'settings': 'sound': False,
'default_inventory': 'warrior': [['' meč ',' štít '], [' tanierové brnenie ',' tanierové kormidlo ']],
„mág“: [[„personál“, „prútik“], [„župan“, „kukla“]], „predmety“: [„lektvar zdravia“, „protijed“,
'lektvar many']
Teraz, keď máte objekt slovníka python, môžete do svojho programu implementovať ľubovoľnú logiku na spracovanie slovníkových údajov.
Vypisovanie slovníka Python ako dát vo formáte TOML
Slovník python je možné vypisovať do reťazcov formátovaných TOML pomocou „toml.výpisy “alebo je možné objekt vyhodiť do súboru pomocou„ toml.skládka “. V nasledujúcom príklade sa prevedie slovníkový objekt nito reťazce formátované TOML:
#!/ usr / bin / env python3importná hrobka
data = toml.načítať ("údaje.hrob ")
tlač (toml.skládky (údaje))
Spustenie vyššie uvedeného kódu spôsobí nasledujúci výstup:
name = "PC hra"[predvolené]
profile_name = "Profil"
player_name = "Player"
profile_created = 1979-05-27T07: 32: 00-08: 00
zvuk = pravda
[default_inventory]
warrior = [["meč", "štít",], ["tanierové brnenie", "tanierové kormidlo",],]
mág = [["štáb", "prútik",], ["župan", "kukla",],]
items = ["lektvar zdravia", "protijed", "lektvar many",]
[užívateľ.profil]
name = "profil1"
player_name = "player1"
trieda = "bojovník"
[užívateľ.nastavenie]
zvuk = nepravda
Ak chcete previesť objekt slovníka na reťazec vo formáte TOML a uložiť ho do súboru, môžete použiť „toml.dump (dictionary_object, output_file) ”metóda.
Záver
Jednoduchšie povedané súbor TOML je iba konfiguračný súbor INI s lepšou štruktúrou a syntaxou, ktorý uľahčuje ľahšiu analýzu a lepšiu čitateľnosť. Formát súboru TOML sa často porovnáva s formátom súboru JSON, ale okrem použitia v konfiguračných súboroch nemá TOML veľa užitočnosti. Na druhej strane JSON je oveľa univerzálnejší a dá sa použiť v rôznych prípadoch použitia vyžadujúcich akýkoľvek typ dátovej štruktúry.