【问题标题】:Using Socrata SODA API to query most recent rows by datetime使用 Socrata SODA API 按日期时间查询最近的行
【发布时间】:2014-07-28 18:15:32
【问题描述】:

我是这个网站的新手,这是我的第一个问题。我正在尝试从 Socrata Seattle Open Data 站点查询“Seattle Real Time Fire 911 Calls”数据库:https://data.seattle.gov/Public-Safety/Seattle-Real-Time-Fire-911-Calls/kzjm-xkqj。我不是使用 SODA API 的专家,而且我很难弄清楚如何查询数据库中的最新条目。所有使用“order”或“where”SoQL 语句的尝试都给了我 2010 年或 2011 年的数据,我不知道如何查询最近的 300 个条目。查询“顶部”行会产生最旧的条目。使用完整的 OData 提要拉取最近的数据,但我需要使用快速 json 或 csv SODA API 查询。

注意:日期时间字段不会响应我使用的任何“where”语句。

谢谢!

【问题讨论】:

    标签: json api datetime socrata soda


    【解决方案1】:

    好的,一些入门提示:

    • $order parameter 默认按升序 (ASC) 排序,因此您需要实际按 datetime DESC 排序以首先获取最新记录
    • 不幸的是,西雅图列出了许多没有datetime 的罪行,因此您还需要使用$where 查询进行过滤,以仅检索某个日期范围内的结果。例如,$where=datetime > '2014-07-01' 为我工作
    • 要仅获得前 300 个结果,您还需要传递 $limit=300 参数。

    这是 Runscope 中的 sample request 供您试用。

    【讨论】:

    • 这个例子很有帮助,我已经弄清楚了。感谢您的帮助。
    • SoQL 的实现有什么变化吗?这个例子不再适用于我。如果我curl -v 'https://data.seattle.gov/resource/kzjm-xkqj.csv?$where=datetime%20%3E%20'2014-07-01'' 我会返回以下错误消息:`“SoQL 目前不支持日期和数字之间的转换。”`
    • 您的网址中的07 之间是什么?:2014-0‌​7-01
    • 遇到与@ChrisKolodin 相同的问题,以下http 请求返回相同的错误:https://data.cityofnewyork.us/resource/erm2-nwe9.json?$where=created_date>='2014-01-01'
    • 看起来您的查询应该可以正常工作,但请仔细检查您没有对日期部分 (2014-01-01) 进行 URL 编码,因为我们似乎在对该部分进行编码时遇到问题:@987654323 @
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多