{ "cells": [ { "cell_type": "markdown", "id": "fb4464cd-9572-4f69-87a0-ea432c2f6a0e", "metadata": { "tags": [] }, "source": [ "Importación de archivos JSON --- 8:25 min\n", "===\n", "\n", "* 8:25 min | Última modificación: Octubre 13, 2021 | [YouTube](https://youtu.be/qWftbEDT0bY)" ] }, { "cell_type": "code", "execution_count": 1, "id": "37127794-4f21-41e1-b055-00cbba1fb3f9", "metadata": {}, "outputs": [], "source": [ "#\n", "# Carga de la librería\n", "# ===============================================\n", "#\n", "import json" ] }, { "cell_type": "markdown", "id": "e7176fbe-f327-4ecc-aedb-57ce8ed937a9", "metadata": {}, "source": [ "## Introducción a JSON" ] }, { "cell_type": "code", "execution_count": 2, "id": "f4eef0f2-cdc1-4baf-b0f9-ac03a0ae69c1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'[1, 1.0, \"hola\", true, false, null]'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversion a JSON de una lista\n", "# ===============================================\n", "#\n", "some_list = [1, 1.0, \"hola\", True, False, None]\n", "json.dumps(some_list)" ] }, { "cell_type": "code", "execution_count": 3, "id": "52a7dccf-2a18-4f11-a8eb-554c64ce2e48", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'[1, \"hola\"]'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversion a JSON de una tupla\n", "# ===============================================\n", "#\n", "some_tuple = (1, \"hola\")\n", "json.dumps(some_tuple)" ] }, { "cell_type": "code", "execution_count": 4, "id": "b0f2e77f-d201-4da9-9a04-64926cfb29f5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'{\"key_0\": 0, \"key_1\": 1, \"key_2\": 2, \"key_3\": 3}'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversion a JSON de un diccionario\n", "# ===============================================\n", "#\n", "some_dict = {\n", " \"key_0\": 0,\n", " \"key_1\": 1,\n", " \"key_2\": 2,\n", " \"key_3\": 3,\n", "}\n", "\n", "json.dumps(some_dict)" ] }, { "cell_type": "code", "execution_count": 5, "id": "576f195b-885b-4696-b143-16c6bbd8f044", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'[{\"Name\": \"Jameson R. Boyle\", \"Phone\": \"1-507-132-4340\"}, {\"Name\": \"Idona J. Singleton\", \"Phone\": \"1-662-859-5562\"}, {\"Name\": \"Ryder K. Maldonado\", \"Phone\": \"1-921-715-5315\"}]'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversion a JSON de una estructura compleja\n", "# ===============================================\n", "#\n", "some_data = [\n", " {\"Name\": \"Jameson R. Boyle\", \"Phone\": \"1-507-132-4340\" },\n", " {\"Name\": \"Idona J. Singleton\", \"Phone\": \"1-662-859-5562\"},\n", " {\"Name\": \"Ryder K. Maldonado\", \"Phone\": \"1-921-715-5315\"},\n", "]\n", "\n", "json.dumps(some_data)" ] }, { "cell_type": "code", "execution_count": 6, "id": "9a1ad79e-9e35-4796-9f5e-9bb57e650403", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('[{\"Name\": \"Jameson R. Boyle\", \"Phone\": \"1-507-132-4340\"}, {\"Name\": \"Idona J. '\n", " 'Singleton\", \"Phone\": \"1-662-859-5562\"}, {\"Name\": \"Ryder K. Maldonado\", '\n", " '\"Phone\": \"1-921-715-5315\"}]')\n" ] } ], "source": [ "#\n", "# Impresión de JSON con pprint\n", "# ===============================================\n", "#\n", "from pprint import pprint\n", "\n", "data_json = json.dumps(some_data)\n", "pprint(data_json)" ] }, { "cell_type": "markdown", "id": "2b9d272c-71c0-47e0-beb0-2bdf6fbc7e2b", "metadata": {}, "source": [ "## Ingestión de datos desde archivos locales" ] }, { "cell_type": "code", "execution_count": 7, "id": "18e7599b-241b-4989-a323-dca981b8dfac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting /tmp/data.json\n" ] } ], "source": [ "%%writefile /tmp/data.json\n", "{\"Name\":{\"0\":\"Isabelle I. Dotson\",\"1\":\"Erin F. Munoz\",\"2\":\"Troy G. Harrell\",\"3\":\"Yen W. Summers\",\"4\":\"Jerome B. Carney\",\"5\":\"Yuri O. Head\",\"6\":\"Ima A. Richard\",\"7\":\"Eleanor Q. Guerrero\",\"8\":\"Stuart F. Daniels\",\"9\":\"Cara G. Beach\",\"10\":\"Nolan E. Cortez\",\"11\":\"Darius H. Beach\",\"12\":\"Christian T. Mercer\",\"13\":\"Florence F. Gordon\",\"14\":\"Wilma I. Patton\",\"15\":\"Rajah I. Jensen\",\"16\":\"Zoe U. Whitfield\",\"17\":\"May K. Wood\",\"18\":\"Beck Q. Monroe\",\"19\":\"Amanda A. Marks\",\"20\":\"Serina X. Lang\",\"21\":\"Lionel L. Bartlett\",\"22\":\"Florence Z. Oconnor\",\"23\":\"Chloe Y. Sears\",\"24\":\"Mariam N. Tyler\",\"25\":\"Dana A. Jefferson\",\"26\":\"Nola N. Chan\",\"27\":\"Owen Z. Odom\",\"28\":\"Serina B. Nash\",\"29\":\"Salvador I. Powell\"},\"Address\":{\"0\":\"?\",\"1\":\"P.O. Box 737, 6015 Ligula St.\",\"2\":\"3706 Ut St.\",\"3\":\"P.O. Box 939, 8016 Egestas Av.\",\"4\":\"298-7004 Natoque St.\",\"5\":\"P.O. Box 214, 231 Dapibus Ave\",\"6\":\"Ap #496-7181 Ullamcorper, St.\",\"7\":\"5425 Ornare St.\",\"8\":\"719-8478 Nunc St.\",\"9\":\"648-517 Velit. Av.\",\"10\":\"Ap #766-6998 Gravida Rd.\",\"11\":\"Ap #251-7151 Donec Av.\",\"12\":\"P.O. Box 858, 1997 Elit, Avenue\",\"13\":\"543-831 Est. Rd.\",\"14\":\"P.O. Box 299, 7144 Orci Street\",\"15\":\"Ap #782-6146 Turpis St.\",\"16\":\"Ap #200-7243 Sit St.\",\"17\":\"777-1067 Auctor, Ave\",\"18\":\"P.O. Box 123, 9085 Lorem, Rd.\",\"19\":\"638-3732 Fermentum Road\",\"20\":\"P.O. Box 780, 2133 Rutrum Road\",\"21\":\"Ap #400-1963 Pellentesque. Ave\",\"22\":\"839 Cras Road\",\"23\":\"361-5600 Per St.\",\"24\":\"589-6397 Scelerisque Road\",\"25\":\"Ap #142-8392 Consequat Avenue\",\"26\":\"Ap #878-314 Faucibus Rd.\",\"27\":\"1659 Risus. Street\",\"28\":\"P.O. Box 143, 5197 At Avenue\",\"29\":\"356-7423 Semper Road\"},\"City\":{\"0\":\"Lamontz\\u017de\",\"1\":\"Springfield\",\"2\":\"Herne\",\"3\":\"Elversele\",\"4\":\"Osimo\",\"5\":\"Lac-Serent\",\"6\":\"Lehrte\",\"7\":\"Arendonk\",\"8\":\"Mataram\",\"9\":\"Casciana Terme\",\"10\":\"Manfredonia\",\"11\":\"Valuyki\",\"12\":\"Guaymas\",\"13\":\"Valcourt\",\"14\":\"Palermo\",\"15\":\"Arquata del Tronto\",\"16\":\"Chesapeake\",\"17\":\"Maastricht\",\"18\":\"Reading\",\"19\":\"Sindelfingen\",\"20\":\"Bromyard\",\"21\":\"Aparecida de Goi\\u00e2nia\",\"22\":\"Etawah\",\"23\":\"Mission\",\"24\":\"Pozzuolo del Friuli\",\"25\":\"Khammam\",\"26\":\"Requ\\u00ednoa\",\"27\":\"Valuyki\",\"28\":\"San Costantino Calabro\",\"29\":\"Cardiff\"},\"ZipCode\":{\"0\":\"12144-86218\",\"1\":\"6373\",\"2\":\"?\",\"3\":\"93452\",\"4\":\"20619\",\"5\":\"4464\",\"6\":\"21449\",\"7\":\"00636\",\"8\":\"43168\",\"9\":\"78450\",\"10\":\"09534\",\"11\":\"903927\",\"12\":\"21574\",\"13\":\"6387\",\"14\":\"233311\",\"15\":\"15936\",\"16\":\"W2A 0QO\",\"17\":\"754025\",\"18\":\"27665\",\"19\":\"678968\",\"20\":\"Z7366\",\"21\":\"744476\",\"22\":\"15197\",\"23\":\"0787 KM\",\"24\":\"T5G 6M8\",\"25\":\"49399\",\"26\":\"1640\",\"27\":\"12758\",\"28\":\"77234\",\"29\":\"Z4197\"},\"Date\":{\"0\":\"02.24.21\",\"1\":\"10.15.20\",\"2\":\"06.28.21\",\"3\":\"?\",\"4\":\"09.23.20\",\"5\":\"12.22.21\",\"6\":\"09.12.21\",\"7\":\"02.15.22\",\"8\":\"06.20.21\",\"9\":\"02.12.22\",\"10\":\"12.14.20\",\"11\":\"10.31.21\",\"12\":\"10.20.20\",\"13\":\"12.01.21\",\"14\":\"12.27.20\",\"15\":\"02.06.21\",\"16\":\"12.01.21\",\"17\":\"01.06.21\",\"18\":\"08.03.22\",\"19\":\"11.20.20\",\"20\":\"07.02.21\",\"21\":\"12.21.21\",\"22\":\"11.29.20\",\"23\":\"08.08.22\",\"24\":\"05.12.21\",\"25\":\"02.06.21\",\"26\":\"06.10.22\",\"27\":\"02.03.21\",\"28\":\"10.31.21\",\"29\":\"05.28.22\"},\"Score\":{\"0\":21.0,\"1\":21.0,\"2\":23.0,\"3\":null,\"4\":24.0,\"5\":17.0,\"6\":22.0,\"7\":21.0,\"8\":15.0,\"9\":19.0,\"10\":23.0,\"11\":14.0,\"12\":19.0,\"13\":25.0,\"14\":17.0,\"15\":21.0,\"16\":19.0,\"17\":13.0,\"18\":24.0,\"19\":11.0,\"20\":14.0,\"21\":17.0,\"22\":24.0,\"23\":19.0,\"24\":23.0,\"25\":20.0,\"26\":10.0,\"27\":20.0,\"28\":18.0,\"29\":19.0}}" ] }, { "cell_type": "code", "execution_count": 8, "id": "b61d254a-045b-4584-8477-3b2126638561", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\"Name\":{\"0\":\"Isabelle I. Dotson\",\"1\":\"Erin F. Munoz\",\"2\":\"Troy G. Harrell\",\"3\":\"Yen W. Summers\",\"4\":\"Jerome B. Carney\",\"5\":\"Yuri O. Head\",\"6\":\"Ima A. Richard\",\"7\":\"Eleanor Q. Guerrero\",\"8\":\"Stuart F. Daniels\",\"9\":\"Cara G. Beach\",\"10\":\"Nolan E. Cortez\",\"11\":\"Darius H. Beach\",\"12\":\"Christian T. Mercer\",\"13\":\"Florence F. Gordon\",\"14\":\"Wilma I. Patton\",\"15\":\"Rajah I. Jensen\",\"16\":\"Zoe U. Whitfield\",\"17\":\"May K. Wood\",\"18\":\"Beck Q. Monroe\",\"19\":\"Amanda A. Marks\",\"20\":\"Serina X. Lang\",\"21\":\"Lionel L. Bartlett\",\"22\":\"Florence Z. Oconnor\",\"23\":\"Chloe Y. Sears\",\"24\":\"Mariam N. Tyler\",\"25\":\"Dana A. Jefferson\",\"26\":\"Nola N. Chan\",\"27\":\"Owen Z. Odom\",\"28\":\"Serina B. Nash\",\"29\":\"Salvador I. Powell\"},\"Address\":{\"0\":\"?\",\"1\":\"P.O. Box 737, 6015 Ligula St.\",\"2\":\"3706 Ut St.\",\"3\":\"P.O. Box 939, 8016 Egestas Av.\",\"4\":\"298-7004 Natoque St.\",\"5\":\"P.O. Box 214, 231 Dapibus Ave\",\"6\":\"Ap #496-7181 Ullamcorper, St.\",\"7\":\"5425 Ornare St.\",\"8\":\"719-8478 Nunc St.\",\"9\":\"648-517 Velit. Av.\",\"10\":\"Ap #766-6998 Gravida Rd.\",\"11\":\"Ap #251-7151 Donec Av.\",\"12\":\"P.O. Box 858, 1997 Elit, Avenue\",\"13\":\"543-831 Est. Rd.\",\"14\":\"P.O. Box 299, 7144 Orci Street\",\"15\":\"Ap #782-6146 Turpis St.\",\"16\":\"Ap #200-7243 Sit St.\",\"17\":\"777-1067 Auctor, Ave\",\"18\":\"P.O. Box 123, 9085 Lorem, Rd.\",\"19\":\"638-3732 Fermentum Road\",\"20\":\"P.O. Box 780, 2133 Rutrum Road\",\"21\":\"Ap #400-1963 Pellentesque. Ave\",\"22\":\"839 Cras Road\",\"23\":\"361-5600 Per St.\",\"24\":\"589-6397 Scelerisque Road\",\"25\":\"Ap #142-8392 Consequat Avenue\",\"26\":\"Ap #878-314 Faucibus Rd.\",\"27\":\"1659 Risus. Street\",\"28\":\"P.O. Box 143, 5197 At Avenue\",\"29\":\"356-7423 Semper Road\"},\"City\":{\"0\":\"Lamontz\\u017de\",\"1\":\"Springfield\",\"2\":\"Herne\",\"3\":\"Elversele\",\"4\":\"Osimo\",\"5\":\"Lac-Serent\",\"6\":\"Lehrte\",\"7\":\"Arendonk\",\"8\":\"Mataram\",\"9\":\"Casciana Terme\",\"10\":\"Manfredonia\",\"11\":\"Valuyki\",\"12\":\"Guaymas\",\"13\":\"Valcourt\",\"14\":\"Palermo\",\"15\":\"Arquata del Tronto\",\"16\":\"Chesapeake\",\"17\":\"Maastricht\",\"18\":\"Reading\",\"19\":\"Sindelfingen\",\"20\":\"Bromyard\",\"21\":\"Aparecida de Goi\\u00e2nia\",\"22\":\"Etawah\",\"23\":\"Mission\",\"24\":\"Pozzuolo del Friuli\",\"25\":\"Khammam\",\"26\":\"Requ\\u00ednoa\",\"27\":\"Valuyki\",\"28\":\"San Costantino Calabro\",\"29\":\"Cardiff\"},\"ZipCode\":{\"0\":\"12144-86218\",\"1\":\"6373\",\"2\":\"?\",\"3\":\"93452\",\"4\":\"20619\",\"5\":\"4464\",\"6\":\"21449\",\"7\":\"00636\",\"8\":\"43168\",\"9\":\"78450\",\"10\":\"09534\",\"11\":\"903927\",\"12\":\"21574\",\"13\":\"6387\",\"14\":\"233311\",\"15\":\"15936\",\"16\":\"W2A 0QO\",\"17\":\"754025\",\"18\":\"27665\",\"19\":\"678968\",\"20\":\"Z7366\",\"21\":\"744476\",\"22\":\"15197\",\"23\":\"0787 KM\",\"24\":\"T5G 6M8\",\"25\":\"49399\",\"26\":\"1640\",\"27\":\"12758\",\"28\":\"77234\",\"29\":\"Z4197\"},\"Date\":{\"0\":\"02.24.21\",\"1\":\"10.15.20\",\"2\":\"06.28.21\",\"3\":\"?\",\"4\":\"09.23.20\",\"5\":\"12.22.21\",\"6\":\"09.12.21\",\"7\":\"02.15.22\",\"8\":\"06.20.21\",\"9\":\"02.12.22\",\"10\":\"12.14.20\",\"11\":\"10.31.21\",\"12\":\"10.20.20\",\"13\":\"12.01.21\",\"14\":\"12.27.20\",\"15\":\"02.06.21\",\"16\":\"12.01.21\",\"17\":\"01.06.21\",\"18\":\"08.03.22\",\"19\":\"11.20.20\",\"20\":\"07.02.21\",\"21\":\"12.21.21\",\"22\":\"11.29.20\",\"23\":\"08.08.22\",\"24\":\"05.12.21\",\"25\":\"02.06.21\",\"26\":\"06.10.22\",\"27\":\"02.03.21\",\"28\":\"10.31.21\",\"29\":\"05.28.22\"},\"Score\":{\"0\":21.0,\"1\":21.0,\"2\":23.0,\"3\":null,\"4\":24.0,\"5\":17.0,\"6\":22.0,\"7\":21.0,\"8\":15.0,\"9\":19.0,\"10\":23.0,\"11\":14.0,\"12\":19.0,\"13\":25.0,\"14\":17.0,\"15\":21.0,\"16\":19.0,\"17\":13.0,\"18\":24.0,\"19\":11.0,\"20\":14.0,\"21\":17.0,\"22\":24.0,\"23\":19.0,\"24\":23.0,\"25\":20.0,\"26\":10.0,\"27\":20.0,\"28\":18.0,\"29\":19.0}}\n" ] } ], "source": [ "!cat /tmp/data.json" ] }, { "cell_type": "code", "execution_count": 9, "id": "69056bb8-4066-4d03-8d6c-4857420b31a1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Importación\n", "# ===============================================\n", "#\n", "with open(\"/tmp/data.json\", 'r') as json_file:\n", " data_json = json.load(json_file)\n", " \n", "type(data_json)" ] }, { "cell_type": "code", "execution_count": 10, "id": "da914714-3f2c-4d1c-baf0-59ba45d808cb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['Name', 'Address', 'City', 'ZipCode', 'Date', 'Score'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Claves del diccionario\n", "#\n", "data_json.keys()" ] }, { "cell_type": "code", "execution_count": 11, "id": "1b3e4283-0c06-461e-995c-b43fd07b8b9c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'0': 'Isabelle I. Dotson',\n", " '1': 'Erin F. Munoz',\n", " '2': 'Troy G. Harrell',\n", " '3': 'Yen W. Summers',\n", " '4': 'Jerome B. Carney',\n", " '5': 'Yuri O. Head',\n", " '6': 'Ima A. Richard',\n", " '7': 'Eleanor Q. Guerrero',\n", " '8': 'Stuart F. Daniels',\n", " '9': 'Cara G. Beach',\n", " '10': 'Nolan E. Cortez',\n", " '11': 'Darius H. Beach',\n", " '12': 'Christian T. Mercer',\n", " '13': 'Florence F. Gordon',\n", " '14': 'Wilma I. Patton',\n", " '15': 'Rajah I. Jensen',\n", " '16': 'Zoe U. Whitfield',\n", " '17': 'May K. Wood',\n", " '18': 'Beck Q. Monroe',\n", " '19': 'Amanda A. Marks',\n", " '20': 'Serina X. Lang',\n", " '21': 'Lionel L. Bartlett',\n", " '22': 'Florence Z. Oconnor',\n", " '23': 'Chloe Y. Sears',\n", " '24': 'Mariam N. Tyler',\n", " '25': 'Dana A. Jefferson',\n", " '26': 'Nola N. Chan',\n", " '27': 'Owen Z. Odom',\n", " '28': 'Serina B. Nash',\n", " '29': 'Salvador I. Powell'}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Extracción de una columna\n", "#\n", "data_json['Name']" ] }, { "cell_type": "code", "execution_count": 12, "id": "c5d5fa6f-3716-4c52-824d-27a300850e3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'{\\n \"Address\": {\\n \"0\": \"?\",\\n \"1\": \"P.O. Box 737, 6015 Ligula St.\",\\n \"10\": \"Ap #766-6998 Gravida Rd.\",\\n \"11\": \"Ap #251-7151 Donec Av.\",\\n \"12\": \"P.O. Box 858, 1997 Elit, Avenue\",\\n \"13\": \"543-831 Est. Rd.\",\\n \"14\": \"P.O. Box 299, 7144 Orci Street\",\\n \"15\": \"Ap #782-6146 Turpis St.\",\\n \"16\": \"Ap #200-7243 Sit St.\",\\n \"17\": \"777-1067 Auctor, Ave\",\\n \"18\": \"P.O. Box 123, 9085 Lorem, Rd.\",\\n \"19\": \"638-3732 Fermentum Road\",\\n \"2\": \"3706 Ut St.\",\\n \"20\": \"P.O. Box 780, 2133 Rutrum Road\",\\n \"21\": \"Ap #400-1963 Pellentesque. Ave\",\\n \"22\": \"839 Cras Road\",\\n \"23\": \"361-5600 Per St.\",\\n \"24\": \"589-6397 Scelerisque Road\",\\n \"25\": \"Ap #142-8392 Consequat Avenue\",\\n \"26\": \"Ap #878-314 Faucibus Rd.\",\\n \"27\": \"1659 Risus. Street\",\\n \"28\": \"P.O. Box 143, 5197 At Avenue\",\\n \"29\": \"356-7423 Semper Road\",\\n \"3\": \"P.O. Box 939, 8016 Egestas Av.\",\\n \"4\": \"298-7004 Natoque St.\",\\n \"5\": \"P.O. Box 214, 231 Dapibus Ave\",\\n \"6\": \"Ap #496-7181 Ullamcorper, St.\",\\n \"7\": \"5425 Ornare St.\",\\n \"8\": \"719-8478 Nunc St.\",\\n \"9\": \"648-517 Velit. Av.\"\\n },\\n \"City\": {\\n \"0\": \"Lamontz\\\\u017de\",\\n \"1\": \"Springfield\",\\n \"10\": \"Manfredonia\",\\n \"11\": \"Valuyki\",\\n \"12\": \"Guaymas\",\\n \"13\": \"Valcourt\",\\n \"14\": \"Palermo\",\\n \"15\": \"Arquata del Tronto\",\\n \"16\": \"Chesapeake\",\\n \"17\": \"Maastricht\",\\n \"18\": \"Reading\",\\n \"19\": \"Sindelfingen\",\\n \"2\": \"Herne\",\\n \"20\": \"Bromyard\",\\n \"21\": \"Aparecida de Goi\\\\u00e2nia\",\\n \"22\": \"Etawah\",\\n \"23\": \"Mission\",\\n \"24\": \"Pozzuolo del Friuli\",\\n \"25\": \"Khammam\",\\n \"26\": \"Requ\\\\u00ednoa\",\\n \"27\": \"Valuyki\",\\n \"28\": \"San Costantino Calabro\",\\n \"29\": \"Cardiff\",\\n \"3\": \"Elversele\",\\n \"4\": \"Osimo\",\\n \"5\": \"Lac-Serent\",\\n \"6\": \"Lehrte\",\\n \"7\": \"Arendonk\",\\n \"8\": \"Mataram\",\\n \"9\": \"Casciana Terme\"\\n },\\n \"Date\": {\\n \"0\": \"02.24.21\",\\n \"1\": \"10.15.20\",\\n \"10\": \"12.14.20\",\\n \"11\": \"10.31.21\",\\n \"12\": \"10.20.20\",\\n \"13\": \"12.01.21\",\\n \"14\": \"12.27.20\",\\n \"15\": \"02.06.21\",\\n \"16\": \"12.01.21\",\\n \"17\": \"01.06.21\",\\n \"18\": \"08.03.22\",\\n \"19\": \"11.20.20\",\\n \"2\": \"06.28.21\",\\n \"20\": \"07.02.21\",\\n \"21\": \"12.21.21\",\\n \"22\": \"11.29.20\",\\n \"23\": \"08.08.22\",\\n \"24\": \"05.12.21\",\\n \"25\": \"02.06.21\",\\n \"26\": \"06.10.22\",\\n \"27\": \"02.03.21\",\\n \"28\": \"10.31.21\",\\n \"29\": \"05.28.22\",\\n \"3\": \"?\",\\n \"4\": \"09.23.20\",\\n \"5\": \"12.22.21\",\\n \"6\": \"09.12.21\",\\n \"7\": \"02.15.22\",\\n \"8\": \"06.20.21\",\\n \"9\": \"02.12.22\"\\n },\\n \"Name\": {\\n \"0\": \"Isabelle I. Dotson\",\\n \"1\": \"Erin F. Munoz\",\\n \"10\": \"Nolan E. Cortez\",\\n \"11\": \"Darius H. Beach\",\\n \"12\": \"Christian T. Mercer\",\\n \"13\": \"Florence F. Gordon\",\\n \"14\": \"Wilma I. Patton\",\\n \"15\": \"Rajah I. Jensen\",\\n \"16\": \"Zoe U. Whitfield\",\\n \"17\": \"May K. Wood\",\\n \"18\": \"Beck Q. Monroe\",\\n \"19\": \"Amanda A. Marks\",\\n \"2\": \"Troy G. Harrell\",\\n \"20\": \"Serina X. Lang\",\\n \"21\": \"Lionel L. Bartlett\",\\n \"22\": \"Florence Z. Oconnor\",\\n \"23\": \"Chloe Y. Sears\",\\n \"24\": \"Mariam N. Tyler\",\\n \"25\": \"Dana A. Jefferson\",\\n \"26\": \"Nola N. Chan\",\\n \"27\": \"Owen Z. Odom\",\\n \"28\": \"Serina B. Nash\",\\n \"29\": \"Salvador I. Powell\",\\n \"3\": \"Yen W. Summers\",\\n \"4\": \"Jerome B. Carney\",\\n \"5\": \"Yuri O. Head\",\\n \"6\": \"Ima A. Richard\",\\n \"7\": \"Eleanor Q. Guerrero\",\\n \"8\": \"Stuart F. Daniels\",\\n \"9\": \"Cara G. Beach\"\\n },\\n \"Score\": {\\n \"0\": 21.0,\\n \"1\": 21.0,\\n \"10\": 23.0,\\n \"11\": 14.0,\\n \"12\": 19.0,\\n \"13\": 25.0,\\n \"14\": 17.0,\\n \"15\": 21.0,\\n \"16\": 19.0,\\n \"17\": 13.0,\\n \"18\": 24.0,\\n \"19\": 11.0,\\n \"2\": 23.0,\\n \"20\": 14.0,\\n \"21\": 17.0,\\n \"22\": 24.0,\\n \"23\": 19.0,\\n \"24\": 23.0,\\n \"25\": 20.0,\\n \"26\": 10.0,\\n \"27\": 20.0,\\n \"28\": 18.0,\\n \"29\": 19.0,\\n \"3\": null,\\n \"4\": 24.0,\\n \"5\": 17.0,\\n \"6\": 22.0,\\n \"7\": 21.0,\\n \"8\": 15.0,\\n \"9\": 19.0\\n },\\n \"ZipCode\": {\\n \"0\": \"12144-86218\",\\n \"1\": \"6373\",\\n \"10\": \"09534\",\\n \"11\": \"903927\",\\n \"12\": \"21574\",\\n \"13\": \"6387\",\\n \"14\": \"233311\",\\n \"15\": \"15936\",\\n \"16\": \"W2A 0QO\",\\n \"17\": \"754025\",\\n \"18\": \"27665\",\\n \"19\": \"678968\",\\n \"2\": \"?\",\\n \"20\": \"Z7366\",\\n \"21\": \"744476\",\\n \"22\": \"15197\",\\n \"23\": \"0787 KM\",\\n \"24\": \"T5G 6M8\",\\n \"25\": \"49399\",\\n \"26\": \"1640\",\\n \"27\": \"12758\",\\n \"28\": \"77234\",\\n \"29\": \"Z4197\",\\n \"3\": \"93452\",\\n \"4\": \"20619\",\\n \"5\": \"4464\",\\n \"6\": \"21449\",\\n \"7\": \"00636\",\\n \"8\": \"43168\",\\n \"9\": \"78450\"\\n }\\n}'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversión a un string\n", "# ===============================================\n", "#\n", "json_string = json.dumps(\n", " data_json,\n", " sort_keys=True,\n", " indent=4,\n", ")\n", "\n", "json_string" ] }, { "cell_type": "code", "execution_count": 13, "id": "543bf5ca-0110-41a8-b7f5-79be7614f700", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " \"Address\": {\n", " \"0\": \"?\",\n", " \"1\": \"P.O. Box 737, 6015 Ligula St.\",\n", " \"10\": \"Ap #766-6998 Gravida Rd.\",\n", " \"11\": \"Ap #251-7151 Donec Av.\",\n", " \"12\": \"P.O. Box 858, 1997 Elit, Avenue\",\n", " \"13\": \"543-831 Est. Rd.\",\n", " \"14\": \"P.O. Box 299, 7144 Orci Street\",\n", " \"15\": \"Ap #782-6146 Turpis St.\",\n", " \"16\": \"Ap #200-7243 Sit St.\",\n", " \"17\": \"777-1067 Auctor, Ave\",\n", " \"18\": \"P.O. Box 123, 9085 Lorem, Rd.\",\n", " \"19\": \"638-3732 Fermentum Road\",\n", " \"2\": \"3706 Ut St.\",\n", " \"20\": \"P.O. Box 780, 2133 Rutrum Road\",\n", " \"21\": \"Ap #400-1963 Pellentesque. Ave\",\n", " \"22\": \"839 Cras Road\",\n", " \"23\": \"361-5600 Per St.\",\n", " \"24\": \"589-6397 Scelerisque Road\",\n", " \"25\": \"Ap #142-8392 Consequat Avenue\",\n", " \"26\": \"Ap #878-314 Faucibus Rd.\",\n", " \"27\": \"1659 Risus. Street\",\n", " \"28\": \"P.O. Box 143, 5197 At Avenue\",\n", " \"29\": \"356-7423 Semper Road\",\n", " \"3\": \"P.O. Box 939, 8016 Egestas Av.\",\n", " \"4\": \"298-7004 Natoque St.\",\n", " \"5\": \"P.O. Box 214, 231 Dapibus Ave\",\n", " \"6\": \"Ap #496-7181 Ullamcorper, St.\",\n", " \"7\": \"5425 Ornare St.\",\n", " \"8\": \"719-8478 Nunc St.\",\n", " \"9\": \"648-517 Velit. Av.\"\n", " },\n", " \"City\": {\n", " \"0\": \"Lamontz\\u017de\",\n", " \"1\": \"Springfield\",\n", " \"10\": \"Manfredonia\",\n", " \"11\": \"Valuyki\",\n", " \"12\": \"Guaymas\",\n", " \"13\": \"Valcourt\",\n", " \"14\": \"Palermo\",\n", " \"15\": \"Arquata del Tronto\",\n", " \"16\": \"Chesapeake\",\n", " \"17\": \"Maastricht\",\n", " \"18\": \"Reading\",\n", " \"19\": \"Sindelfingen\",\n", " \"2\": \"Herne\",\n", " \"20\": \"Bromyard\",\n", " \"21\": \"Aparecida de Goi\\u00e2nia\",\n", " \"22\": \"Etawah\",\n", " \"23\": \"Mission\",\n", " \"24\": \"Pozzuolo del Friuli\",\n", " \"25\": \"Khammam\",\n", " \"26\": \"Requ\\u00ednoa\",\n", " \"27\": \"Valuyki\",\n", " \"28\": \"San Costantino Calabro\",\n", " \"29\": \"Cardiff\",\n", " \"3\": \"Elversele\",\n", " \"4\": \"Osimo\",\n", " \"5\": \"Lac-Serent\",\n", " \"6\": \"Lehrte\",\n", " \"7\": \"Arendonk\",\n", " \"8\": \"Mataram\",\n", " \"9\": \"Casciana Terme\"\n", " },\n", " \"Date\": {\n", " \"0\": \"02.24.21\",\n", " \"1\": \"10.15.20\",\n", " \"10\": \"12.14.20\",\n", " \"11\": \"10.31.21\",\n", " \"12\": \"10.20.20\",\n", " \"13\": \"12.01.21\",\n", " \"14\": \"12.27.20\",\n", " \"15\": \"02.06.21\",\n", " \"16\": \"12.01.21\",\n", " \"17\": \"01.06.21\",\n", " \"18\": \"08.03.22\",\n", " \"19\": \"11.20.20\",\n", " \"2\": \"06.28.21\",\n", " \"20\": \"07.02.21\",\n", " \"21\": \"12.21.21\",\n", " \"22\": \"11.29.20\",\n", " \"23\": \"08.08.22\",\n", " \"24\": \"05.12.21\",\n", " \"25\": \"02.06.21\",\n", " \"26\": \"06.10.22\",\n", " \"27\": \"02.03.21\",\n", " \"28\": \"10.31.21\",\n", " \"29\": \"05.28.22\",\n", " \"3\": \"?\",\n", " \"4\": \"09.23.20\",\n", " \"5\": \"12.22.21\",\n", " \"6\": \"09.12.21\",\n", " \"7\": \"02.15.22\",\n", " \"8\": \"06.20.21\",\n", " \"9\": \"02.12.22\"\n", " },\n", " \"Name\": {\n", " \"0\": \"Isabelle I. Dotson\",\n", " \"1\": \"Erin F. Munoz\",\n", " \"10\": \"Nolan E. Cortez\",\n", " \"11\": \"Darius H. Beach\",\n", " \"12\": \"Christian T. Mercer\",\n", " \"13\": \"Florence F. Gordon\",\n", " \"14\": \"Wilma I. Patton\",\n", " \"15\": \"Rajah I. Jensen\",\n", " \"16\": \"Zoe U. Whitfield\",\n", " \"17\": \"May K. Wood\",\n", " \"18\": \"Beck Q. Monroe\",\n", " \"19\": \"Amanda A. Marks\",\n", " \"2\": \"Troy G. Harrell\",\n", " \"20\": \"Serina X. Lang\",\n", " \"21\": \"Lionel L. Bartlett\",\n", " \"22\": \"Florence Z. Oconnor\",\n", " \"23\": \"Chloe Y. Sears\",\n", " \"24\": \"Mariam N. Tyler\",\n", " \"25\": \"Dana A. Jefferson\",\n", " \"26\": \"Nola N. Chan\",\n", " \"27\": \"Owen Z. Odom\",\n", " \"28\": \"Serina B. Nash\",\n", " \"29\": \"Salvador I. Powell\",\n", " \"3\": \"Yen W. Summers\",\n", " \"4\": \"Jerome B. Carney\",\n", " \"5\": \"Yuri O. Head\",\n", " \"6\": \"Ima A. Richard\",\n", " \"7\": \"Eleanor Q. Guerrero\",\n", " \"8\": \"Stuart F. Daniels\",\n", " \"9\": \"Cara G. Beach\"\n", " },\n", " \"Score\": {\n", " \"0\": 21.0,\n", " \"1\": 21.0,\n", " \"10\": 23.0,\n", " \"11\": 14.0,\n", " \"12\": 19.0,\n", " \"13\": 25.0,\n", " \"14\": 17.0,\n", " \"15\": 21.0,\n", " \"16\": 19.0,\n", " \"17\": 13.0,\n", " \"18\": 24.0,\n", " \"19\": 11.0,\n", " \"2\": 23.0,\n", " \"20\": 14.0,\n", " \"21\": 17.0,\n", " \"22\": 24.0,\n", " \"23\": 19.0,\n", " \"24\": 23.0,\n", " \"25\": 20.0,\n", " \"26\": 10.0,\n", " \"27\": 20.0,\n", " \"28\": 18.0,\n", " \"29\": 19.0,\n", " \"3\": null,\n", " \"4\": 24.0,\n", " \"5\": 17.0,\n", " \"6\": 22.0,\n", " \"7\": 21.0,\n", " \"8\": 15.0,\n", " \"9\": 19.0\n", " },\n", " \"ZipCode\": {\n", " \"0\": \"12144-86218\",\n", " \"1\": \"6373\",\n", " \"10\": \"09534\",\n", " \"11\": \"903927\",\n", " \"12\": \"21574\",\n", " \"13\": \"6387\",\n", " \"14\": \"233311\",\n", " \"15\": \"15936\",\n", " \"16\": \"W2A 0QO\",\n", " \"17\": \"754025\",\n", " \"18\": \"27665\",\n", " \"19\": \"678968\",\n", " \"2\": \"?\",\n", " \"20\": \"Z7366\",\n", " \"21\": \"744476\",\n", " \"22\": \"15197\",\n", " \"23\": \"0787 KM\",\n", " \"24\": \"T5G 6M8\",\n", " \"25\": \"49399\",\n", " \"26\": \"1640\",\n", " \"27\": \"12758\",\n", " \"28\": \"77234\",\n", " \"29\": \"Z4197\",\n", " \"3\": \"93452\",\n", " \"4\": \"20619\",\n", " \"5\": \"4464\",\n", " \"6\": \"21449\",\n", " \"7\": \"00636\",\n", " \"8\": \"43168\",\n", " \"9\": \"78450\"\n", " }\n", "}\n" ] } ], "source": [ "#\n", "# Impresion\n", "# ===============================================\n", "#\n", "print(json_string)" ] }, { "cell_type": "code", "execution_count": 14, "id": "f8584a42-e992-452d-811e-003d09ddb429", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Name': {'0': 'Jameson R. Boyle',\n", " '1': 'Idona J. Singleton',\n", " '2': 'Ryder K. Maldonado'},\n", " 'Phone': {'0': '1-507-132-4340',\n", " '1': '1-662-859-5562',\n", " '2': '1-921-715-5315'}}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Importación desde un string\n", "# ===============================================\n", "#\n", "json_string = \"\"\"\n", "{\n", " \"Name\": {\n", " \"0\": \"Jameson R. Boyle\",\n", " \"1\": \"Idona J. Singleton\",\n", " \"2\": \"Ryder K. Maldonado\"\n", " },\n", " \"Phone\": {\n", " \"0\": \"1-507-132-4340\",\n", " \"1\": \"1-662-859-5562\",\n", " \"2\": \"1-921-715-5315\"\n", " }\n", "}\n", "\"\"\"\n", "\n", "json.loads(json_string)" ] }, { "cell_type": "markdown", "id": "907f763a-5eba-45dd-ba81-243c7990b42f", "metadata": {}, "source": [ "## Ingestión desde una API" ] }, { "cell_type": "code", "execution_count": 15, "id": "fe76e130-47d3-4baf-825f-53a13e400efd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'avatar_url': 'https://avatars.githubusercontent.com/u/8204100?v=4',\n", " 'bio': 'Full Professor (Analytics and Computer Science) at Facultad de Minas, '\n", " 'Universidad Nacional de Colombia. ',\n", " 'blog': '',\n", " 'company': 'Universidad Nacional de Colombia',\n", " 'created_at': '2014-07-18T19:26:25Z',\n", " 'email': None,\n", " 'events_url': 'https://api.github.com/users/jdvelasq/events{/privacy}',\n", " 'followers': 369,\n", " 'followers_url': 'https://api.github.com/users/jdvelasq/followers',\n", " 'following': 0,\n", " 'following_url': 'https://api.github.com/users/jdvelasq/following{/other_user}',\n", " 'gists_url': 'https://api.github.com/users/jdvelasq/gists{/gist_id}',\n", " 'gravatar_id': '',\n", " 'hireable': None,\n", " 'html_url': 'https://github.com/jdvelasq',\n", " 'id': 8204100,\n", " 'location': 'Medellín, Colombia',\n", " 'login': 'jdvelasq',\n", " 'name': 'Juan David Velásquez-Henao',\n", " 'node_id': 'MDQ6VXNlcjgyMDQxMDA=',\n", " 'organizations_url': 'https://api.github.com/users/jdvelasq/orgs',\n", " 'public_gists': 3,\n", " 'public_repos': 54,\n", " 'received_events_url': 'https://api.github.com/users/jdvelasq/received_events',\n", " 'repos_url': 'https://api.github.com/users/jdvelasq/repos',\n", " 'site_admin': False,\n", " 'starred_url': 'https://api.github.com/users/jdvelasq/starred{/owner}{/repo}',\n", " 'subscriptions_url': 'https://api.github.com/users/jdvelasq/subscriptions',\n", " 'twitter_username': None,\n", " 'type': 'User',\n", " 'updated_at': '2021-08-10T14:33:27Z',\n", " 'url': 'https://api.github.com/users/jdvelasq'}\n" ] } ], "source": [ "import requests\n", "from pprint import pprint\n", "\n", "username = \"jdvelasq\"\n", "url = f\"https://api.github.com/users/{username}\"\n", "user_data = requests.get(url).json()\n", "pprint(user_data)" ] }, { "cell_type": "code", "execution_count": 16, "id": "67aa1b41-9db1-41fd-aa16-40dac883cda9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Juan David Velásquez-Henao'" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Extracción de un valor\n", "#\n", "user_data['name']" ] }, { "cell_type": "code", "execution_count": 17, "id": "2f097d82-5e44-42fb-b3b6-f863b2f97da4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'archive_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/{archive_format}{/ref}',\n", " 'archived': False,\n", " 'assignees_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/assignees{/user}',\n", " 'blobs_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/git/blobs{/sha}',\n", " 'branches_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/branches{/branch}',\n", " 'clone_url': 'https://github.com/jdvelasq/autograding-run-command.git',\n", " 'collaborators_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/collaborators{/collaborator}',\n", " 'comments_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/comments{/number}',\n", " 'commits_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/commits{/sha}',\n", " 'compare_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/compare/{base}...{head}',\n", " 'contents_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/contents/{+path}',\n", " 'contributors_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/contributors',\n", " 'created_at': '2021-02-14T01:24:40Z',\n", " 'default_branch': 'main',\n", " 'deployments_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/deployments',\n", " 'description': None,\n", " 'disabled': False,\n", " 'downloads_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/downloads',\n", " 'events_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/events',\n", " 'fork': False,\n", " 'forks': 0,\n", " 'forks_count': 0,\n", " 'forks_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/forks',\n", " 'full_name': 'jdvelasq/autograding-run-command',\n", " 'git_commits_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/git/commits{/sha}',\n", " 'git_refs_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/git/refs{/sha}',\n", " 'git_tags_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/git/tags{/sha}',\n", " 'git_url': 'git://github.com/jdvelasq/autograding-run-command.git',\n", " 'has_downloads': True,\n", " 'has_issues': True,\n", " 'has_pages': False,\n", " 'has_projects': True,\n", " 'has_wiki': True,\n", " 'homepage': None,\n", " 'hooks_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/hooks',\n", " 'html_url': 'https://github.com/jdvelasq/autograding-run-command',\n", " 'id': 338706086,\n", " 'issue_comment_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/issues/comments{/number}',\n", " 'issue_events_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/issues/events{/number}',\n", " 'issues_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/issues{/number}',\n", " 'keys_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/keys{/key_id}',\n", " 'labels_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/labels{/name}',\n", " 'language': 'Shell',\n", " 'languages_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/languages',\n", " 'license': None,\n", " 'merges_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/merges',\n", " 'milestones_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/milestones{/number}',\n", " 'mirror_url': None,\n", " 'name': 'autograding-run-command',\n", " 'node_id': 'MDEwOlJlcG9zaXRvcnkzMzg3MDYwODY=',\n", " 'notifications_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/notifications{?since,all,participating}',\n", " 'open_issues': 0,\n", " 'open_issues_count': 0,\n", " 'owner': {'avatar_url': 'https://avatars.githubusercontent.com/u/8204100?v=4',\n", " 'events_url': 'https://api.github.com/users/jdvelasq/events{/privacy}',\n", " 'followers_url': 'https://api.github.com/users/jdvelasq/followers',\n", " 'following_url': 'https://api.github.com/users/jdvelasq/following{/other_user}',\n", " 'gists_url': 'https://api.github.com/users/jdvelasq/gists{/gist_id}',\n", " 'gravatar_id': '',\n", " 'html_url': 'https://github.com/jdvelasq',\n", " 'id': 8204100,\n", " 'login': 'jdvelasq',\n", " 'node_id': 'MDQ6VXNlcjgyMDQxMDA=',\n", " 'organizations_url': 'https://api.github.com/users/jdvelasq/orgs',\n", " 'received_events_url': 'https://api.github.com/users/jdvelasq/received_events',\n", " 'repos_url': 'https://api.github.com/users/jdvelasq/repos',\n", " 'site_admin': False,\n", " 'starred_url': 'https://api.github.com/users/jdvelasq/starred{/owner}{/repo}',\n", " 'subscriptions_url': 'https://api.github.com/users/jdvelasq/subscriptions',\n", " 'type': 'User',\n", " 'url': 'https://api.github.com/users/jdvelasq'},\n", " 'private': False,\n", " 'pulls_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/pulls{/number}',\n", " 'pushed_at': '2021-02-14T01:29:01Z',\n", " 'releases_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/releases{/id}',\n", " 'size': 3,\n", " 'ssh_url': 'git@github.com:jdvelasq/autograding-run-command.git',\n", " 'stargazers_count': 0,\n", " 'stargazers_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/stargazers',\n", " 'statuses_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/statuses/{sha}',\n", " 'subscribers_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/subscribers',\n", " 'subscription_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/subscription',\n", " 'svn_url': 'https://github.com/jdvelasq/autograding-run-command',\n", " 'tags_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/tags',\n", " 'teams_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/teams',\n", " 'trees_url': 'https://api.github.com/repos/jdvelasq/autograding-run-command/git/trees{/sha}',\n", " 'updated_at': '2021-02-14T01:30:19Z',\n", " 'url': 'https://api.github.com/repos/jdvelasq/autograding-run-command',\n", " 'watchers': 0,\n", " 'watchers_count': 0}\n" ] } ], "source": [ "#\n", "# Extracción de los repositorios\n", "#\n", "repos_url = user_data['repos_url']\n", "repos_data = requests.get(repos_url).json()\n", "pprint(repos_data[2])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 5 }