Created
October 26, 2018 13:07
-
-
Save ischurov/aa17089719a931c1cd8de5590e176990 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# http://roskazna.ru/ispolnenie-byudzhetov/konsolidirovannyj-byudzhet/\n", | |
"\n", | |
"import zipfile" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"archive = zipfile.ZipFile(\n", | |
" 'D://Downloads/otchet_ob_ispolnenii_kbrf_za_2017_god.zip', \n", | |
" 'r')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<ZipInfo filename='ÄΓτÑΓ èéÉ ¡á 01.01.2018 (ú«ñ).xls' compress_type=deflate external_attr=0x20 file_size=131584 compress_size=24047>,\n", | |
" <ZipInfo filename='ÄΓτÑΓ ûÅ ¡á 01.01.2018 (ú«ñ).xls' compress_type=deflate external_attr=0x20 file_size=574976 compress_size=101288>,\n", | |
" <ZipInfo filename='Σ.0507021_01.01.2018.xls' compress_type=deflate external_attr=0x20 file_size=2704896 compress_size=238180>,\n", | |
" <ZipInfo filename='Σ.0507052_01.01.2018.xls' compress_type=deflate external_attr=0x20 file_size=965632 compress_size=307748>,\n", | |
" <ZipInfo filename='Σ.0507061_01.01.2018.xls' compress_type=deflate external_attr=0x20 file_size=193536 compress_size=38604>,\n", | |
" <ZipInfo filename='Σ.0507023_01.01.2018.xls' compress_type=deflate external_attr=0x20 file_size=284672 compress_size=36555>,\n", | |
" <ZipInfo filename='Σ.0507022_01.01.2018.xls' compress_type=deflate external_attr=0x20 file_size=391680 compress_size=38554>]" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"archive.filelist" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'ÄΓτÑΓ èéÉ ¡á 01.01.2018 (ú«ñ).xls'" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"archive.filelist[0].filename" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"xlsfile = archive.open(archive.filelist[0].filename)\n", | |
"df = pd.read_excel(xlsfile, sheetname=None, header=10, \n", | |
" convert_float=False)\n", | |
"xlsfile.close()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"odict_keys(['XDO_METADATA', 'Доходы', 'Доходы дискретно', 'Расходы', 'Расходы дискретно', 'Источники', 'Источники дискретно'])" | |
] | |
}, | |
"execution_count": 48, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.keys()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"budget = df['Доходы']['Федеральный бюджет']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1.0 2.0 NaN\n", | |
"Всего X 15 088 914 843 263.58\n", | |
"Доходы 100 14 969 633 976 863.46\n", | |
"Налоговые доходы 110 11 071 284 645 575.76\n", | |
"Доходы от собственности 120 NaN\n", | |
"Доходы от оказания платных услуг (работ) и компенсации затрат 130 NaN\n", | |
"Суммы принудительного изъятия 140 NaN\n", | |
"Безвозмездные поступления от бюджетов 150 NaN\n", | |
"Поступления от других бюджетов бюджетной системы Российской Федерации 151 NaN\n", | |
"Страховые взносы на обязательное социальное страхование 160 NaN\n", | |
"Прочие доходы 180 NaN\n", | |
"Выбытие нефинансовых активов 400 NaN\n", | |
"Уменьшение стоимости основных средств 410 NaN\n", | |
"Уменьшение стоимости нематериальных активов 420 NaN\n", | |
"Уменьшение стоимости непроизведенных активов 430 NaN\n", | |
"Уменьшение стоимости материальных запасов 440 NaN\n", | |
"Name: Федеральный бюджет, dtype: object" | |
] | |
}, | |
"execution_count": 56, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"budget.str.replace(\",\", \".\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"ser = pd.Series([1, float(\"nan\"), 5, float(\"nan\")])\n", | |
"ser2 = pd.Series([100, 200, 300, 400])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 1.0\n", | |
"1 NaN\n", | |
"2 5.0\n", | |
"3 NaN\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 59, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ser" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 100\n", | |
"1 200\n", | |
"2 300\n", | |
"3 400\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 60, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ser2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 1.0\n", | |
"1 200.0\n", | |
"2 5.0\n", | |
"3 400.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ser.fillna(ser2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0xb498a90>" | |
] | |
}, | |
"execution_count": 67, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0xb2f4d68>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"(budget.str.replace(\",\", \".\")\n", | |
" .str.replace(\" \", \"\").astype(float).fillna(budget)).plot.bar()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import requests" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# https://geocode-maps.yandex.ru/1.x/?geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0+%D0%9B%D1%8C%D0%B2%D0%B0+%D0%A2%D0%BE%D0%BB%D1%81%D1%82%D0%BE%D0%B3%D0%BE+16" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"r = requests.get(\"https://geocode-maps.yandex.ru/1.x/\",\n", | |
" params={'geocode': 'Шаболовка, 26с4'})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'https://geocode-maps.yandex.ru/1.x/?geocode=%D0%A8%D0%B0%D0%B1%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B0%2C+26%D1%814'" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r.url" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from bs4 import BeautifulSoup" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"soup = BeautifulSoup(r.text, 'xml')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"['37.607987', '55.71985']" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"soup.find(\"pos\").text.split()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"x = \"76.876\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'+7.'" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"\"7e3\"\n", | |
"\"+7.\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "ValueError", | |
"evalue": "could not convert string to float: 'kjhjh'", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-29-428e4bdaf43b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfloat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"kjhjh\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Hello\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;31mValueError\u001b[0m: could not convert string to float: 'kjhjh'" | |
] | |
} | |
], | |
"source": [ | |
"float(\"kjhjh\")\n", | |
"print(\"Hello\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"x is zero\n", | |
"x_number = 0.0\n" | |
] | |
} | |
], | |
"source": [ | |
"x = \"0\"\n", | |
"x_number = None\n", | |
"try:\n", | |
" x_number = float(x)\n", | |
" print(1 / x_number)\n", | |
"except ValueError:\n", | |
" print(\"x is not a float number\")\n", | |
"except ZeroDivisionError:\n", | |
" print(\"x is zero\")\n", | |
"print(\"x_number = \", x_number)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [ | |
{ | |
"ename": "ValueError", | |
"evalue": "could not convert string to float: 'kjhjhl'", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-27-3dd0f8cc8a45>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfloat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"kjhjhl\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[1;31mValueError\u001b[0m: could not convert string to float: 'kjhjhl'" | |
] | |
} | |
], | |
"source": [ | |
"# DON'T!!!\n", | |
"try:\n", | |
" # ...\n", | |
"except:\n", | |
" pass\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Exception!!!\n", | |
"float division by zero\n", | |
"<class 'ZeroDivisionError'>\n", | |
"x_number = 0.0\n" | |
] | |
} | |
], | |
"source": [ | |
"x = \"0\"\n", | |
"x_number = None\n", | |
"try:\n", | |
" x_number = float(x)\n", | |
" print(1 / x_number)\n", | |
"except Exception as e:\n", | |
" print(\"Exception!!!\")\n", | |
" print(e)\n", | |
" print(type(e))\n", | |
"print(\"x_number = \", x_number)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"r = requests.get(\"http://hse.ru/kgkhjgkjhgkjg\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<Response [404]>" | |
] | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"r" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Error\n" | |
] | |
} | |
], | |
"source": [ | |
"if not r:\n", | |
" print(\"Error\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Invalid name\n" | |
] | |
} | |
], | |
"source": [ | |
"try:\n", | |
" r = requests.get(\"http://kgkjhgkjyfktyjtd.khgkjyf\")\n", | |
"except requests.ConnectionError:\n", | |
" print(\"Invalid name\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.1111111111111111\n", | |
"Cleared\n", | |
"That's all\n" | |
] | |
} | |
], | |
"source": [ | |
"x = \"9\"\n", | |
"x_number = None\n", | |
"try:\n", | |
" x_number = float(x)\n", | |
" print(1 / x_number)\n", | |
"finally:\n", | |
" print(\"Cleared\")\n", | |
"print(\"That's all\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<GeoObject id=\"3\">\n", | |
"<metaDataProperty>\n", | |
"<GeocoderMetaData>\n", | |
"<kind>street</kind>\n", | |
"<text>Россия, Тверская область, Кимрский район, садовое товарищество Космос, улица Шаболовка</text>\n", | |
"<precision>street</precision>\n", | |
"<Address>\n", | |
"<country_code>RU</country_code>\n", | |
"<formatted>Тверская область, Кимрский район, садовое товарищество Космос, улица Шаболовка</formatted>\n", | |
"<Component>\n", | |
"<kind>country</kind>\n", | |
"<name>Россия</name>\n", | |
"</Component>\n", | |
"<Component>\n", | |
"<kind>province</kind>\n", | |
"<name>Центральный федеральный округ</name>\n", | |
"</Component>\n", | |
"<Component>\n", | |
"<kind>province</kind>\n", | |
"<name>Тверская область</name>\n", | |
"</Component>\n", | |
"<Component>\n", | |
"<kind>area</kind>\n", | |
"<name>Кимрский район</name>\n", | |
"</Component>\n", | |
"<Component>\n", | |
"<kind>locality</kind>\n", | |
"<name>садовое товарищество Космос</name>\n", | |
"</Component>\n", | |
"<Component>\n", | |
"<kind>street</kind>\n", | |
"<name>улица Шаболовка</name>\n", | |
"</Component>\n", | |
"</Address>\n", | |
"<AddressDetails>\n", | |
"<Country>\n", | |
"<AddressLine>Тверская область, Кимрский район, садовое товарищество Космос, улица Шаболовка</AddressLine>\n", | |
"<CountryNameCode>RU</CountryNameCode>\n", | |
"<CountryName>Россия</CountryName>\n", | |
"<AdministrativeArea>\n", | |
"<AdministrativeAreaName>Тверская область</AdministrativeAreaName>\n", | |
"<SubAdministrativeArea>\n", | |
"<SubAdministrativeAreaName>Кимрский район</SubAdministrativeAreaName>\n", | |
"<Locality>\n", | |
"<LocalityName>садовое товарищество Космос</LocalityName>\n", | |
"<Thoroughfare>\n", | |
"<ThoroughfareName>улица Шаболовка</ThoroughfareName>\n", | |
"</Thoroughfare>\n", | |
"</Locality>\n", | |
"</SubAdministrativeArea>\n", | |
"</AdministrativeArea>\n", | |
"</Country>\n", | |
"</AddressDetails>\n", | |
"</GeocoderMetaData>\n", | |
"</metaDataProperty>\n", | |
"<description>садовое товарищество Космос, Кимрский район, Тверская область, Россия</description>\n", | |
"<name>улица Шаболовка</name>\n", | |
"<boundedBy>\n", | |
"<Envelope>\n", | |
"<lowerCorner>37.249389 56.749876</lowerCorner>\n", | |
"<upperCorner>37.256036 56.751662</upperCorner>\n", | |
"</Envelope>\n", | |
"</boundedBy>\n", | |
"<Point>\n", | |
"<pos>37.252713 56.750769</pos>\n", | |
"</Point>\n", | |
"</GeoObject>" | |
] | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"soup.find(\"GeoObject\", {'id': 3})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Россия, Москва, улица Шаболовка, 26с4\n", | |
"longitude 37.607987 latitude 55.71985\n", | |
"Россия, Липецкая область, Хлевенский район, село Отскочное, улица Шаболовка, 26\n", | |
"longitude 39.128251 latitude 52.091369\n", | |
"Россия, Тверская область, Кимрский район, садовое товарищество Космос, улица Шаболовка\n", | |
"longitude 37.252713 latitude 56.750769\n", | |
"Россия, Владимирская область, Киржачский район, деревня Кашино, улица Шаболовка\n", | |
"longitude 38.85555 latitude 55.999687\n", | |
"Россия, Пензенская область, Вадинский район, село Овчарные Выселки, улица Шаболовка\n", | |
"longitude 42.979643 latitude 53.631647\n", | |
"Россия, Ярославская область, городской округ Переславль-Залесский, река Шаболовка\n", | |
"longitude 38.396834 latitude 56.734612\n" | |
] | |
} | |
], | |
"source": [ | |
"for go in soup.find_all(\"GeoObject\"):\n", | |
" print(go.find(\"text\").text)\n", | |
" long, lat = go.find(\"Point\").find(\"pos\").text.split()\n", | |
" print(\"longitude\", long, \"latitude\", lat)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"r = requests.get(\"https://geocode-maps.yandex.ru/1.x/\",\n", | |
" params={'geocode': 'Шаболовка, 26с4',\n", | |
" 'format': 'json'})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data = r.json()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 61, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict" | |
] | |
}, | |
"execution_count": 61, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict_keys(['response'])" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.keys()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 64, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict_keys(['GeoObjectCollection'])" | |
] | |
}, | |
"execution_count": 64, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['response'].keys()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 69, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"list" | |
] | |
}, | |
"execution_count": 69, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(data['response']['GeoObjectCollection']['featureMember'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'37.607987 55.71985'" | |
] | |
}, | |
"execution_count": 72, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(data['response']['GeoObjectCollection']\n", | |
" ['featureMember'][0]['GeoObject']['Point']['pos'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment