Does anyone know if there is a way to find an AGO item's (story map, etc..) usage stats with a custom date range using python?
Thanks!
This is really hokey and could use a lot of cleaning. For some reason, I couldn't get around some limit to how the API retrieves the data, so I had to make multiple url calls for each 52-ish-day block to get a years worth of stats. This reads from a CSV of ITEM NAMES, and writes out stats to unique files. You have to pass dates as julian date. This idea was originally posted two years ago.Access Raw (Rest API) data from AGOL Feature Service usage statistics . This has been HUUUUUGELY helpful when we look at the raw AGOL service numbers compared to Google Analytics of web pages where we're embedding maps, so we can see what folks are interested in or using. The service statistics are way more telling than the number of times an item was viewed.
This could easily be modified to write to one file or be more dynamic on dates instead of the ridiculous number of try blocks I have.
<SPAN class="keyword token">import</SPAN> csv <SPAN class="keyword token">import</SPAN> urllib <SPAN class="keyword token">import</SPAN> urllib2 <SPAN class="keyword token">import</SPAN> json <SPAN class="keyword token">import</SPAN> datetime <SPAN class="comment token"># need to get a token</SPAN> tokenURL <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fwww.arcgis.com%2Fsharing%2Frest%2FgenerateToken" target="_blank">https://www.arcgis.com/sharing/rest/generateToken</A><SPAN>'</SPAN></SPAN> params <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">'f'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'pjson'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'username'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'AGOL_USER_NAME'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'password'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">'AGOL_PASSWORD!'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'referer'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fwww.arcgis.com" target="_blank">https://www.arcgis.com</A><SPAN>'</SPAN></SPAN><SPAN class="punctuation token">}</SPAN> req <SPAN class="operator token">=</SPAN> urllib2<SPAN class="punctuation token">.</SPAN>Request<SPAN class="punctuation token">(</SPAN>tokenURL<SPAN class="punctuation token">,</SPAN> urllib<SPAN class="punctuation token">.</SPAN>urlencode<SPAN class="punctuation token">(</SPAN>params<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> response <SPAN class="operator token">=</SPAN> urllib2<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>req<SPAN class="punctuation token">)</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>load<SPAN class="punctuation token">(</SPAN>response<SPAN class="punctuation token">)</SPAN> token <SPAN class="operator token">=</SPAN> data<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'token'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="comment token"># read list of AGOL service names</SPAN> readCSV <SPAN class="operator token">=</SPAN> list<SPAN class="punctuation token">(</SPAN>csv<SPAN class="punctuation token">.</SPAN>reader<SPAN class="punctuation token">(</SPAN>open<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'service.csv'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> names <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> readCSV<SPAN class="punctuation token">:</SPAN> name <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="comment token">#generate url list of up to 7 api calls</SPAN> <SPAN class="comment token">#Esri truncates usage stats into blocks of approx. 52 days</SPAN> <SPAN class="comment token">#Making a single url call for entire year will fail</SPAN> url1 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1451624400000%26endTime%3D1456808400000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1451624400000&endTime=1456808400000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url2 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1456808400000%26endTime%3D1461988800000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1456808400000&endTime=1461988800000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url3 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1461988800000%26endTime%3D1467172800000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1461988800000&endTime=1467172800000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url4 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1467172800000%26endTime%3D1472356800000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1467172800000&endTime=1472356800000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url5 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1472356800000%26endTime%3D1477540800000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1472356800000&endTime=1477540800000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url6 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1477540800000%26endTime%3D1482728400000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1477540800000&endTime=1482728400000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token url7 <SPAN class="operator token">=</SPAN> <SPAN class="string token"><SPAN>'</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2F%5BYOUR_ORGANIZATIONAL_NAME%5D.maps.arcgis.com%2Fsharing%2Frest%2Fportals%2F%5BYOUR_ORGANIZATIONAL_ID%5D%2Fusage%3Ff%3Djson%26startTime%3D1482728400000%26endTime%3D1483160400000%26period%3D1d%26vars%3Dnum%26groupby%3Dname%26etype%3Dsvcusg%26name%3D" target="_blank">https://[YOUR_ORGANIZATIONAL_NAME].maps.arcgis.com/sharing/rest/portals/[YOUR_ORGANIZATIONAL_ID]/usage?f=json&startTime=1482728400000&endTime=1483160400000&period=1d&vars=num&groupby=name&etype=svcusg&name=</A><SPAN>'</SPAN></SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'&stype=features&token='</SPAN><SPAN class="operator token">+</SPAN>token <SPAN class="comment token">#Make 7 url calls for year. Will fail if 7 calls and feature was posted mid-year</SPAN> <SPAN class="comment token">#so try blocks will keep trying less url calls</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url1<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url2<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url3<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url4<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url5<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 313 days of 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url2<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url3<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url4<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url5<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 261 days of 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url3<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url4<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url5<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 209 days of 216....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url4<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url5<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 157 days of 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url5<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 105 days of 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url6<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> data <SPAN class="operator token">=</SPAN> data <SPAN class="operator token">+</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN> Exception<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">try</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Reading the usage statistics for '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">' for the last 53 days of 2016....'</SPAN> filename <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">(</SPAN>name<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'.csv'</SPAN> data <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>loads<SPAN class="punctuation token">(</SPAN>urllib<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>url7<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'data'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'num'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'Writing '</SPAN><SPAN class="operator token">+</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">+</SPAN><SPAN class="string token">'....'</SPAN> <SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> output<SPAN class="punctuation token">:</SPAN> csv_writer <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>writer<SPAN class="punctuation token">(</SPAN>output<SPAN class="punctuation token">)</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'name'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'date'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'count'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> date<SPAN class="punctuation token">,</SPAN> count <SPAN class="keyword token">in</SPAN> data<SPAN class="punctuation token">:</SPAN> csv_writer<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>name<SPAN class="punctuation token">,</SPAN>datetime<SPAN class="punctuation token">.</SPAN>datetime<SPAN class="punctuation token">.</SPAN>fromtimestamp<SPAN class="punctuation token">(</SPAN>int<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">/</SPAN><SPAN class="number token">1e3</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> count<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">except</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN> <SPAN class="string token">'No usage statistics available too short time range'</SPAN> <SPAN class="keyword token">pass</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Do you know where the arguments for usage have been documented?
I found this sample that would indicate that usage is available (beta?) but nothing in the api reference about it.Usage statistics and credit consumption | ArcGIS for Developers
Thanks,
-Tyler
Hi Edward,
The new Python API may be able to do what you're looking for (ArcGIS API for Python).
Thank you,
Lesi
The usage functionality isn't currently documented in the REST API. Consider supporting the following idea or creating a new one to have this functionality documented so that you can interact with it using python: https://community.esri.com/ideas/7408
When posting the idea, it's really helpful to include a description of what your desired workflow would be and the desired output.
Kelly
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.