gpt4 book ai didi

python - SODA API 未返回数据集中的所有字段

转载 作者:行者123 更新时间:2023-12-04 15:10:18 26 4
gpt4 key购买 nike

我无法从 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 字段发出请求,然后为每个字段发送一个单独的请求以获取所有字段,但必须有更好的方法来执行此操作。有人有什么想法吗?

最佳答案

似乎有一些字段经常留空:locationbusiness_corridorlic_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/

26 4 0
文章推荐: javascript - 如何在 React + Material-UI 元素中使用 CSS?
文章推荐: javascript - RxJS Observable forkJoin 不并行执行
文章推荐: javascript - 子元素在shadow dom中的使用