【问题标题】:Querying from Soda database using Socrata client.get in Python在 Python 中使用 Socrata client.get 从 Soda 数据库中查询
【发布时间】:2017-04-11 16:06:04
【问题描述】:

我正在尝试从数据库中查询,并尝试查找格式化 SoQL 字符串的正确方法,但我失败了。我尝试以下方法:

from __future__ import division, print_function
from sodapy import Socrata
import pandas as pd
import numpy as np


client = Socrata("data.cityofchicago.org", None)

df = client.get("kkgn-a2j4", query="WHERE traffic > -1")

并收到一个错误,它Could not parse SoQL query "WHERE traffic > -1" at line 1 character 1。但是,如果我执行以下操作,它会起作用:

from __future__ import division, print_function
from sodapy import Socrata
import pandas as pd
import numpy as np


client = Socrata("data.cityofchicago.org", None)

df = client.get("kkgn-a2j4", where="traffic > -1")

但我想知道如何使查询参数起作用,以便我可以使用更复杂的查询。具体来说,我想尝试查询traffic > -1BETWEEN '2013-01-19T23:50:32.000' AND '2014-12-14T23:50:32.000' 的时间。

【问题讨论】:

    标签: python socrata soda


    【解决方案1】:

    您可以使用 sodapy where 参数(SoQl 中的$where)来组合多个过滤器,只需使用AND 来组合它们:

    traffic > -1 AND last_update BETWEEN '2013-01-19T23:50:32.000' AND '2014-12-14T23:50:32.000'

    【讨论】:

    • 出于好奇,您知道如何编写查询字符串来获得相同的结果吗?
    • 抱歉,刚刚注意到这个!您可以将$query 写为:SELECT * WHERE traffic > -1 AND last_update BETWEEN '2013-01-19T23:50:32.000' AND '2014-12-14T23:50:32.000'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多