2016-04-28 28 views
0

我正在使用python api(sodapy)從https://dev.socrata.com/foundry/data.energystar.gov/ebvx-pb7r獲取數據。如何通過api獲取此頁面上顯示的所有字段?具體來說,我需要additional_model_information字段,但我認爲會有其他字段。我曾嘗試過:試圖獲得Socrata python API調用中的所有字段

  1. 「where additional_model_information is not null」:該字段包含在內,但我也希望有空的行。
  2. 「選擇=‘additional_model_information’返回現場,但沒有別的。
  3. ‘選擇= *’不添加任何領域。
  4. ‘凡=‘additional_model_information不爲空或additional_model_information爲空’’這似乎工作。
  5. 「選擇=所有字段」應該可行,但似乎笨拙。
  6. 能否把2個呼叫,一個來獲取*數據和第二拿到其他領域。

我懷疑我失去了一些東西。任何幫助我s讚賞。

import pprint 
import sodapy 

client = sodapy.Socrata(domain='data.energystar.gov', app_token=None) 
rows = client.get('ebvx-pb7r', where='additional_model_information is not null or additional_model_information is null') 
for row in rows: 
    pprint.pprint(row) 

回答

0

如果你只是離開關where參數完全,你的數據集,這聽起來像一個未經過濾的版本是你想要的。您還需要包括limit參數,以確保你得到所有的記錄,因爲總次數爲1058,這比1000默認頁面大小:

import pprint 
import sodapy 

client = sodapy.Socrata(domain='data.energystar.gov', app_token=None) 
rows = client.get('ebvx-pb7r', limit=5000) 
for row in rows: 
    pprint.pprint(row) 

我認爲部分混淆可能來自這樣的事實:如果對於給定記錄沒有additional_model_information的值,我們返回的JSON對象將省略該字段。

+0

謝謝。因此,任何在數據庫中爲null的字段都不會在該行的json結果中。 –