- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法从 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'))
此请求返回数据集中除最后 6 个字段之外的所有字段。我试过使用
$select=*,*
语句指定我想检索哪些字段,但即使我指定了最后 6 个字段,它仍然遗漏了它们。
但是,当我使用
$limit
语句并将其设置为大于 1000 的值,我得到了一些我缺少的字段。但是,仍然不是全部。
一件有用的事情是指定要抓取的行,所以如果我使用以下内容:
https://data.sfgov.org/resource/g8m3-pdis.json?ttxid=0000028-02-001
它将返回我要查找的所有字段。
我想我可以为所有 ttxid 字段发出请求,然后为每个字段发送一个单独的请求以获取所有字段,但必须有更好的方法来执行此操作。有人有什么想法吗?
最佳答案
似乎有一些字段经常留空:location
、business_corridor
、lic_code_description
等。使用JSON文档时, Socrata 从响应中省略了空白字段(这与 CSV 端点不同)。
它看起来像默认调用,https://data.sfgov.org/resource/g8m3-pdis.json
,恰好返回有空白的字段,因此不会出现。但是,当 $limit
添加到默认值 1,000 之上时,API 恰好返回一些具有完整数据的行,因此该字段出现在有限的情况下。
这也可以通过抓取不包含所有字段的行来确认。 OP 展示了一个返回所有字段的示例: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
关于python - SODA API 未返回数据集中的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65294060/
我是一名优秀的程序员,十分优秀!