0

我可以知道我下面的代码有什么问题吗?我想查询 date_occ 在 '2015-01-10T12:00:00' 和 '2015-12-31T24:00:00' 之间的所有位置

response  = requests.get('https://data.lacity.org/api/id/7fvc-faax.json?$select=*&$where = date_occ between 2015-01-10T12:00:00 and 2015-12-131T24:00:00')

我收到以下错误:无法识别的参数 [$where]

我意识到以下也不起作用

response  = requests.get('https://data.lacity.org/api/id/7fvc-faax.json?$select=*&vict_age >20')
data = response.json()
data = json_normalize(data)
data = pd.DataFrame(data)

但这有效:

response  = requests.get('https://data.lacity.org/api/id/7fvc-faax.json?$select=*&vict_sex=M')

我在这里想念什么?

4

1 回答 1

3

这篇文章提出了一些问题和答案。首先从您的第二个查询开始;20岁以上要看的年龄。查看元数据(单击向下箭头),受害者年龄不是数字,而是一个文本字符串。因此,您将无法使用大于、小于等运算符。但是,您可以查找“等于”。下面的查询将起作用:

https://data.lacity.org/resource/7fvc-faax.json?$where=vict_age = '20'

注意:我已经放弃了$select并且只是$where为了更简单的显示而使用。

您的第三个示例有效,因为您已将其设置为查询文本字段。如果您希望 LA 将其更改为数字,请单击省略号按钮下的“联系数据集所有者”。

您关于日期的第一个问题有一些变化。首先,您的单引号未对齐,并且缺少一些。其次,后一个日期是2015-12-131T24:00:00,它有一个无效的日期。最后,门户上的数据没有时间戳,所以只需要年-月-日。这将起作用:

https://data.lacity.org/resource/7fvc-faax.json?$where=date_occ between '2015-01-10' and '2015-12-13'

最后,我建议您使用 URL 结构,https://data.lacity.org/resource/7fvc-faax.json?而不是/api/id/. 前者是基于 Socrata 的 API 的正确 URL 结构。

于 2018-11-26T05:35:19.033 回答