2016-04-28 2 views
0

Я использую api (sodapy) python для получения данных от https://dev.socrata.com/foundry/data.energystar.gov/ebvx-pb7r. Как получить все поля, показанные на этой странице, через api? В частности, мне нужно поле Additional_model_information, хотя я думаю, что будут другие. Я пробовал:Попытка получить все поля в API-интерфейсе Socrata python

  1. «где дополнительная_модель_информация не равна нулю»: поле включено, но я также хочу, чтобы строки имели нуль.
  2. «выберите =„additional_model_information“поле возвращается, но ничего больше.
  3. „выберите = *“не добавляет поля.
  4. „ где = 'additional_model_information не является нулевым или additional_model_information равна нулю“Это похоже на работу.
  5. «выберите = список всех полей» должны работать, но, кажется громоздким.
  6. могли бы сделать 2 звонки, один, чтобы получить * данные и второй, чтобы получить другие поля.

I подозреваю, что у меня что-то не хватает. с оценкой.

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

Спасибо. Поэтому любое поле, которое является нулевым в db, не будет в результатах json для этой строки. –

Смежные вопросы