2015-07-28 4 views
0

Я хочу получить данные о потреблении базы данных consumerfinance.gov с использованием API Socrata.Socrata consumerfinance.gov complaintsdatabase API JSON синтаксический анализ

Это просто, чтобы получить данные с помощью инструкции на сайте по адресу http://www.consumerfinance.gov/complaintdatabase/technical-documentation/#api-documentation

Я использовал следующий запрос с «6yuf-367p», чтобы получить только «предоплаченную карту» данные о продукте и «.json» тег чтобы получить его в формате JSON:

http://data.consumerfinance.gov/api/views/6yuf-367p/rows.json 

Я использовал PHP для извлечения данных с этим запросом:

$url = "http://data.consumerfinance.gov/api/views/6yuf-367p/rows.json"; 
$json = file_get_contents($url); 
$data = json_decode($json); 
var_dump($data); 

результаты перефразировать ниже. Несколько вещей о результатах, которые отличаются от ожидаемых.

  1. Я не ожидал раздела «Мета». Имена столбцов находятся в разделе Meta, напрямую не связанном с данными в формате {key: value}.

  2. Я ожидал, что раздел данных будет иметь формат {key: value} вместо «значений». Это отличается от формата, описанного на странице справки Socrata в http://dev.socrata.com/docs/formats/json.html

Я не продвинутый Javascript разработчик, так что я задаюсь вопросом, как лучше поступить. В идеале я хочу только раздел «Данные» с именами столбцов в формате {key: value}. Я хотел в этом формате {key: value} использовать такие вещи, как Google Charts.

Я получаю изображения Я хотел бы сохранить имена столбцов в массиве, а затем прокрутить каждую строку данных и переписать строки данных с именами столбцов, включенными для получения формата {key: value}.

Моим другим вариантом было бы использовать формат csv API, который является супер чистым с хорошими чистыми столбцами и без мета-раздела. Но тогда мне пришлось бы преобразовать csv в JSON, который кажется ненужным, поскольку JSON доступен.

CSV запрос следующим образом:

http://data.consumerfinance.gov/api/views/6yuf-367p/rows.csv 

Так пара вопросов:

  1. Предоставляет ли socrata фид API без раздела 'Меты'? Есть ли фильтр, который я могу использовать, чтобы исключить раздел «Мета»?

  2. Если ответ на # 1 - нет, у Socrata есть готовый javascript для разбора JSON, чтобы получить раздел «Данные» в формате {key: value} в формате, аналогичном описанному на странице справки Сократа?

Спасибо!

{ 
    "meta" : { 
    "view" : { 
    "id" : "6yuf-367p", 
    "name" : "Prepaid Card Complaints", 
    "averageRating" : 0, 
    "createdAt" : 1434039311, 

    etc etc 

    "columns" : [ { 
    "id" : -1, 
    "name" : "sid", 
    "dataTypeName" : "meta_data", 
    "fieldName" : ":sid", 
    "position" : 0, 
    "renderTypeName" : "meta_data", 
    "format" : { 
    } 
    }, { 

    etc etc 

    "data" : [ [ 208134, "A7A3941C-A764-44CA-ABC0-66DE814F1969", 208134, 1438091214, "924763", 1438091214, "924763", null, "2015-07-13T00:00:00", "Prepaid card", "General purpose card", "Managing, opening, or closing account", null, null, null, "Amex", "WA", "982XX", "Web", "2015-07-19T00:00:00", "Closed with monetary relief", "Yes", null, "1464043" ] 

    ...... 

    ] 
    } 

ответ

1

Похоже, вы схватили неправильный URL JSON. Тот, который вы захватили, для экспорта JSON , который выведет весь набор данных в формате JSON вместе со всеми метаданными и не предоставит запрашиваемую конечную точку API.

Вместо этого вы должны использовать конечную точку https://data.consumerfinance.gov/resource/jhzv-w97w.json. Это будет получить вам {"key" : "value"} пары, которые вы ищете, например:

[ { 
    "zip_code" : "982XX", 
    "complaint_id" : "1464043", 
    "issue" : "Managing, opening, or closing account", 
    "date_received" : "2015-07-13T00:00:00", 
    "state" : "WA", 
    "product" : "Prepaid card", 
    "company_response" : "Closed with monetary relief", 
    "company" : "Amex", 
    "submitted_via" : "Web", 
    "date_sent_to_company" : "2015-07-19T00:00:00", 
    "sub_product" : "General purpose card", 
    "timely" : "Yes" 
}, ... ] 

Вы также можете просмотреть API Документы для этого набора данных по адресу: http://dev.socrata.com/foundry/#/data.consumerfinance.gov/jhzv-w97w

удачи, и дайте мне знать, если у вас есть больше вопросов.

+0

А это больше похоже на это! спасибо – curtisp

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