SODA API 未返回数据集中的所有字段
SODA API not returning all fields in data set
我无法从 Socrata 开放数据网络获取数据集中的所有字段。我正在使用 urllib3 发出这样的请求:
url = 'https://data.sfgov.org/resource/g8m3-pdis.json'
http = urllib3.PoolManager(ca_certs=certifi.where())
req = http.request_encode_url('GET', url)
data = json.loads(req.data.decode('utf-8'))
此请求 return 是数据集中除最后 6 个字段之外的所有字段。我试过使用
$select=*,*
指定我想检索哪些字段的语句,但即使我指定了最后 6 个字段,它仍然遗漏了它们。
但是,当我使用
$limit
语句并将其设置为大于 1000 的值 我得到了一些我缺少的字段。但是,还不是全部。
一件有用的事情是指定要抓取的行,所以如果我使用以下内容:
https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=0000028-02-001
它将 return 我要查找的所有字段。
我想我可以请求所有 ttxid 字段,然后为每个字段发送一个单独的请求以获取所有字段,但必须有更好的方法来执行此操作。有人有什么想法吗?
似乎有许多字段经常为空白:location
、business_corridor
、lic_code_description
等。使用 JSON 文档时,Socrata 会省略空白来自响应的字段(不同于 CSV 端点)。
看起来默认调用 https://data.sfgov.org/resource/g8m3-pdis.json
恰好出现在 return 有空白的字段中,因此不会出现。但是,当在默认值 1,000 之上添加 $limit
时,API 恰好 return 一些具有完整数据的行,因此该字段出现在有限的情况下。
这也可以通过抓取不包含所有字段的行来确认。 OP 展示了一个 returned 所有字段的示例:https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=0000028-02-001
但此示例包含空白字段,因此在响应中被省略:https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=1079490-06-161
解决此问题的一种方法是从 CSV 端点获取数据:https://data.sfgov.org/resource/g8m3-pdis.csv
我无法从 Socrata 开放数据网络获取数据集中的所有字段。我正在使用 urllib3 发出这样的请求:
url = 'https://data.sfgov.org/resource/g8m3-pdis.json'
http = urllib3.PoolManager(ca_certs=certifi.where())
req = http.request_encode_url('GET', url)
data = json.loads(req.data.decode('utf-8'))
此请求 return 是数据集中除最后 6 个字段之外的所有字段。我试过使用
$select=*,*
指定我想检索哪些字段的语句,但即使我指定了最后 6 个字段,它仍然遗漏了它们。
但是,当我使用
$limit
语句并将其设置为大于 1000 的值 我得到了一些我缺少的字段。但是,还不是全部。
一件有用的事情是指定要抓取的行,所以如果我使用以下内容:
https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=0000028-02-001
它将 return 我要查找的所有字段。
我想我可以请求所有 ttxid 字段,然后为每个字段发送一个单独的请求以获取所有字段,但必须有更好的方法来执行此操作。有人有什么想法吗?
似乎有许多字段经常为空白:location
、business_corridor
、lic_code_description
等。使用 JSON 文档时,Socrata 会省略空白来自响应的字段(不同于 CSV 端点)。
看起来默认调用 https://data.sfgov.org/resource/g8m3-pdis.json
恰好出现在 return 有空白的字段中,因此不会出现。但是,当在默认值 1,000 之上添加 $limit
时,API 恰好 return 一些具有完整数据的行,因此该字段出现在有限的情况下。
这也可以通过抓取不包含所有字段的行来确认。 OP 展示了一个 returned 所有字段的示例:https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=0000028-02-001
但此示例包含空白字段,因此在响应中被省略:https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=1079490-06-161
解决此问题的一种方法是从 CSV 端点获取数据:https://data.sfgov.org/resource/g8m3-pdis.csv