<jupyter_start><jupyter_text>Ukázka práce s API  Instalace knihovny `requests` Aktivujte si virtuální prostředí a v něm spusťte následující příkaz `(venv) > python -m pip install requests`  Rozhraní aplikací dělané pro prohlížeč Výstupem takových aplikací je směs kódu různých technologií (HTML, CSS, JS), který dokáže prohlížeč převést do grafické podoby a zobrazit uživateli přívětivou formou. Nicméně pro zpracování v aplikaci není tento výstup vhodný, protože obsahuje hromadu informací, které pro nás nemají žádnou hodnotu - jako například barvy písma, odsazení atp.<jupyter_code>import requests

# Stažení stránky
stranka = requests.get('https://python.cz/')

# Ověření, že se vše povedlo
stranka.raise_for_status()

# Vypsání obsahu stránky
print(stranka.text)<jupyter_output><!doctype html>
<html lang="cs">
<head>
    <meta charset="utf-8">

    <link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico">
    <meta property="og:image" content="https://python.cz/static/images/logo-fb.png">

    <meta property="og:type" content="website">
    <meta property="og:url" content="https://python.cz/">

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Arbutus+Slab&amp;subset=latin,latin-ext">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="/static/main.css">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.[...]<jupyter_text>API k testování API k testování vytvořil Glutexo a obsahuje pro nás zajímavé informace nejen o českých prezidentech. Zdrojové kódy v jazyce Ruby jsou i s kompletním popisem API dostupné [na GitHubu](https://github.com/Glutexo/pyladies-json) a API samotné pak na adrese [http://pyladies-json.herokuapp.com/](http://pyladies-json.herokuapp.com/).<jupyter_code>data = requests.get('http://pyladies-json.herokuapp.com/prezidenti/všichni')
data.raise_for_status()
print(data.text)<jupyter_output>[{"jméno":"<NAME>","život":{"od":"1850-03-07","do":"1937-09-14"},"úřad":[{"od":"1918-11-14","do":"1935-12-14"}]},{"jméno":"<NAME>","život":{"od":"1884-05-28","do":"1948-09-03"},"úřad":[{"od":"1935-12-18","do":"1938-10-05"},{"od":"1940-07-21","do":"1945-04-02"},{"od":"1945-04-02","do":"1948-06-07"}]},{"jméno":"<NAME>","život":{"od":"1872-06-12","do":"1945-06-27"},"úřad":[{"od":"1938-11-30","do":"1939-03-14"},{"od":"1939-03-15","do":"1945-05-09"}]},{"jméno":"<NAME>","život":{"od":"1896-11-23","do":"1953-03-14"},"úřad":[{"od":"1948-06-14","do":"1953-03-14"}]},{"jméno":"<NAME>","život":{"od":"1884-12-19","do":"1957-11-13"},"úřad":[{"od":"1951-03-21","do":"1957-11-13"}]},{"jméno":"<NAME>","život":{"od":"1904-12-10","do":"1975-01-28"},"úřad":[{"od":"1957-11-19","do":"1968-03-22"}]},{"jméno":"<NAME>","život":{"od":"1895-11-25","do":"1979-09-20"},"úřad":[{"od":"1968-03-30","do":"1975-05-28"}]},{"jméno":"<NAME>","život":{"od"[...]<jupyter_text>Konverze na Pythoní objekt<jupyter_code>import json

# Konverze z textového JSON formátu na Pythoní objekt
json_data = json.loads(data.text)

# Výpis dat
print(json_data)<jupyter_output>[{'život': {'do': '1937-09-14', 'od': '1850-03-07'}, 'úřad': [{'do': '1935-12-14', 'od': '1918-11-14'}], 'jméno': '<NAME>'}, {'život': {'do': '1948-09-03', 'od': '1884-05-28'}, 'úřad': [{'do': '1938-10-05', 'od': '1935-12-18'}, {'do': '1945-04-02', 'od': '1940-07-21'}, {'do': '1948-06-07', 'od': '1945-04-02'}], 'jméno': '<NAME>'}, {'život': {'do': '1945-06-27', 'od': '1872-06-12'}, 'úřad': [{'do': '1939-03-14', 'od': '1938-11-30'}, {'do': '1945-05-09', 'od': '1939-03-15'}], 'jméno': '<NAME>'}, {'život': {'do': '1953-03-14', 'od': '1896-11-23'}, 'úřad': [{'do': '1953-03-14', 'od': '1948-06-14'}], 'jméno': '<NAME>'}, {'život': {'do': '1957-11-13', 'od': '1884-12-19'}, 'úřad': [{'do': '1957-11-13', 'od': '1951-03-21'}], 'jméno': '<NAME>'}, {'život': {'do': '1975-01-28', 'od': '1904-12-10'}, 'úřad': [{'do': '1968-03-22', 'od': '1957-11-19'}], 'jméno': '<NAME>'}, {'život': {'do': '1979-09-20', 'od': '1895-11-25'}, 'úřad': [{'do': '1975[...]<jupyter_text>Použití výstupu pro zpracování dat v programu<jupyter_code>data = requests.get('http://pyladies-json.herokuapp.com/prezidenti/1945-05-01')
data.raise_for_status()

prezidenti = json.loads(data.text)

for prezident in prezidenti:
    print('Prezident {} žil od {} do {}'.format(prezident['jméno'], prezident['život']['od'], prezident['život']['do']))

    print('Období úřadu prezidenta: {}'.format(prezident['jméno']))
    for obdobi in prezident['úřad']:
        print('Od {} do {}'.format(obdobi['od'], obdobi['do']))<jupyter_output>Prezident <NAME> žil od 1872-06-12 do 1945-06-27
Období úřadu prezidenta: <NAME>
Od 1939-03-15 do 1945-05-09
Prezident <NAME> žil od 1884-05-28 do 1948-09-03
Období úřadu prezidenta: <NAME>
Od 1945-04-02 do 1948-06-07
{'fraction_non_alphanumeric': 0.2569039284325165, 'fraction_numerical': 0.11979774406845585, 'mean_word_length': 5.820954907161804, 'pattern_counts': {'":': 57, '<': 48, '<?xml version=': 0, '>': 48, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '602611', 'license': 'MIT', 'n_tokens_mistral': 2586, 'n_tokens_neox': 2197, 'n_words': 360, 'path': 'original/v1/s011-dicts/simple-api.ipynb', 'repo_name': 'vlaxa/pyladies.cz', 'size': '5288'}