Lekce 2.3

Datové formáty a scraping

Struktura JSON, XML a CSV a k čemu se který hodí, úskalí CSV, co je scraping a čím se liší od práce s API.

Cvičení 1

Kurzovní lístek

Co si vyzkoušíte

Převedete kurzovní lístek z JSON do XML a sami rozhodnete, co bude element a co atribut. Vycházíte ze zkrácené odpovědi služby, jejíž živou podobu najdete na https://open.er-api.com/v6/latest/CZK. Stačí textový editor: na Windows Poznámkový blok, na Linuxu Textový editor, na Macu TextEdit přepnutý na prostý text (Formát → Převést na prostý text), případně na všech třech VS Code. Výsledek ověříte v prohlížeči.

Takhle odpověď služby vypadala 5. 11. 2026, jen jsme z ní nechali šest měn a vynechali stovku dalších:

json
{
  "result": "success",
  "time_last_update_unix": 1793836951,
  "time_last_update_utc": "Thu, 05 Nov 2026 00:02:31 +0000",
  "base_code": "CZK",
  "rates": {
    "CZK": 1,
    "EUR": 0.041076,
    "USD": 0.045939,
    "GBP": 0.03435,
    "PLN": 0.180405,
    "CHF": 0.037835,
    "JPY": 7.282737
  }
}

Zadání

Převeďte JSON data zobrazený výše na XML.

  1. Podívejte se na JSON a odpovězte:
    • Jaká je základní měna?
    • Kolik eur dostanete za jednu korunu a kolik korun tedy stojí jedno euro?
    • Jaký typ má hodnota result, time_last_update_unix a kurz eura?
  2. Navrhněte, jak bude vypadat kořenový element.
  3. U každého údaje rozhodněte, jestli z něj bude element, nebo atribut. Zdůvodněte si proč.
  4. Zapište celý lístek do souboru rates.xml i s prologem. Názvy elementů a atributů volte anglicky.
  5. Otevřete rates.xml v prohlížeči: přetáhněte ho do okna nebo použijte Ctrl+O na Windows a Linuxu, Cmd+O na Macu. Když prohlížeč ukáže strom, je dokument správně utvořený. Když ukáže chybu, opravte ji podle čísla řádku.
  6. Schválně smažte jednu zavírací značku, soubor uložte a stránku v prohlížeči obnovte. Podívejte se na popis chyby. Pak chybu opravte.
  7. Uložte výchozí JSON data do souboru rates.json a porovnejte velikost obou souborů. Na Windows a na Linuxu ji najdete po kliknutí pravým tlačítkem ve Vlastnostech, na Macu v okně Informace. O kolik procent je XML větší?
  8. Ve směnárně přibyl maďarský forint, HUF s kurzem 14.946594. Přidejte ho do obou souborů a oba znovu otevřete v prohlížeči.

Bonus

  1. Napište druhou variantu XML, která má kurzy v atributech, pokud jste je dali do elementů, nebo naopak. Porovnejte délku a čitelnost obou variant.
  2. V XML se ztratilo, že time_last_update_unix a kurzy jsou čísla. Vymyslete, jak by šlo typ hodnoty zapsat přímo do dokumentu, aby ho program, který XML čte, nemusel hádat.
  3. Otevřete živá data a najděte měnu, za kterou dostanete z jedné koruny nejvíc jednotek, a měnu, za kterou nejméně. Co o těch měnách čísla říkají?