import urllib, urllib2 param = {'where':'1=1','outFields':'*','f':'json'} url = 'http://coagisweb.cabq.gov/arcgis/rest/services/public/APD_Incidents/MapServer/0/query?' + urllib.urlencode(param) rawreply = urllib2.urlopen(url).read() rawreply[0] type(rawreply) import simplejson reply = simplejson.loads(rawreply) print reply["features"][0]["attributes"]["date"] print reply["features"][0]["attributes"]["CVINC_TYPE"] print len(reply["features"]) #reply["features"][:3] reply["features"][2:5] count = 0 myformateddata=[] while (count < len(reply["features"])): mydict={} for key, value in reply["features"][count]["attributes"].iteritems(): mydict[key]= value myformateddata.append(mydict) count = count + 1 from pandas import DataFrame as df myFrame = df(data=myformateddata) len(myFrame) myFrame import os #os.getcwd() from pandas import ExcelWriter writer = ExcelWriter('CrimeIncidents.xlsx') myFrame.to_excel(writer,'Sheet1',index=False) writer.save() myFrame["CVINC_TYPE"].value_counts() import matplotlib.pyplot as plt incidentType=myFrame["CVINC_TYPE"].value_counts()[:5] incidentType.plot(kind='barh',rot=0) #print myFrame[(myFrame.date>1420930000000)] import datetime import time myDate=datetime.datetime(2015,1,10) #myDate.isoformat() milli=time.mktime(myDate.timetuple()) * 1000+ myDate.microsecond / 1000 print len(myFrame[(myFrame.date>milli)]) print milli myFrame[(myFrame.date>milli)]