Socrata确认没有正式的Python API.我想知道是否有一些原因可以使得学习其中一种具有官方API支持的语言是值得的,即Python(以及像Pandas这样的相关软件包)不是数据争用的最佳选择.
我想做的具体事情包括查看像data.lacity.gov这样的网站.无论我在浏览器上看到什么数据库,都不要让我设置日期或其他参数.我得到几个月的结果,我预计数年或数十年.这导致了寻找API以及缺乏Python支持,除了新兴的已弃用项目分支.当然,我假设API允许更高的可见性...
俱乐部里的老家伙
有关为什么我们还没有Python库的背景,你可能想在Github上查看这个帖子.
简短的版本是 - 这不是因为Python有任何特别的错误,或者因为我们不喜欢它(我认为这是一种很棒的语言),更多的是我们没有内部的专业知识来构建一个马上.我喜欢写一个,但坦率地说,我更像是一个Rubyist而不是Pythonista所以我可能会以某种方式弄乱它会让每个人都不高兴.:)
也就是说,使用Requests或urllib2之类的东西直接使用Socrata API非常容易.例如,以下是如何使用Requests库对[data.lacity.org Building Inspections数据集]进行简单调用:
import requests
r = requests.get(
"https://data.lacity.org/resource/9w5z-rg2h.json?$where=within_circle(lat_lon, 34.053714, -118.242653, 1000)",
headers={"X-App-Token":"[YOUR APP TOKEN]"}
)
r.json()[0] # {u'permit_status': u'Permit Finaled', u'inspection_result': u'Partial Inspection', u'lat_lon': {u'latitude': u'34.04866', u'needs_recoding': False, u'longitude': u'-118.23787'}, u'address': u'100 S ALAMEDA ST', u'inspection': u'Excavation/Setback/Form/Re-Bar', u'inspection_date': u'2013-08-27T00:00:00', u'permit': u'13016-30000-09747'}
Run Code Online (Sandbox Code Playgroud)
您需要构建自己的SoQL查询以与请求一起使用,但是有很多关于如何在dev.socrata.com上执行此操作的资源.