{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import requests" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "appcode = 'Your AppCode here'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "areaid = \"101291401\"\n", "month = \"201805\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "url = 'https://ali-weather.showapi.com/weatherhistory'\n", "payload = {'areaid': areaid, 'month': month}\n", "headers = {'Authorization': 'APPCODE {}'.format(appcode)}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "r = requests.get(url, params=payload, headers=headers)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "r" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "r.content" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import json" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "content_json = json.loads(r.content)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "content_json" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "content_json['showapi_res_body']['list']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame(content_json['showapi_res_body']['list'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def get_df(areaid, areaname_dict, month, appcode):\n", "\n", " url = 'https://ali-weather.showapi.com/weatherhistory'\n", " payload = {'areaid': areaid, 'month': month}\n", " headers = {'Authorization': 'APPCODE {}'.format(appcode)}\n", "\n", " r = requests.get(url, params=payload, headers=headers)\n", "\n", " content_json = json.loads(r.content)\n", "\n", " df = pd.DataFrame(content_json['showapi_res_body']['list'])\n", " df['areaname'] = areaname_dict[areaid]\n", "\n", " return df" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def get_dfs(areaname_dict, months, appcode):\n", " dfs = []\n", " for areaid in areaname_dict:\n", " dfs_times = []\n", " for month in months:\n", " temp_df = get_df(areaid, areaname_dict, month, appcode)\n", " dfs_times.append(temp_df)\n", " area_df = pd.concat(dfs_times)\n", " dfs.append(area_df)\n", " return dfs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "areaname_dict = {\"101291401\":\"丽江\"}\n", "months = [\"201805\"]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dfs = get_dfs(areaname_dict, months, appcode)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dfs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dfs[0]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "areaname_dict = {\"101030100\":\"天津\", \"101020100\":\"上海\", \"101291401\":\"丽江\"}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "months = [\"201801\", \"201802\", \"201803\", \"201804\", \"201805\"]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dfs = get_dfs(areaname_dict, months, appcode)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dfs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df = pd.concat(dfs)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.dtypes" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.time = pd.to_datetime(df.time)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.aqi = pd.to_numeric(df.aqi)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "df.dtypes" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "from plotnine import *\n", "from mizani.breaks import date_breaks" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "(ggplot(df, aes(x='time', y='aqi', color='factor(areaname)')) + geom_line() +\n", " scale_x_datetime(breaks=date_breaks('2 weeks')) +\n", " xlab('日期') + \n", " theme_matplotlib() +\n", " theme(axis_text_x=element_text(rotation=45, hjust=1)) +\n", " theme(text=element_text(family='WenQuanYi Micro Hei'))\n", " )" ] } ], "metadata": { "kernelspec": { "display_name": "wangshuyi", "language": "python", "name": "wangshuyi" }, "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }