Я хочу получить данные из базы данных жалоб Consumerfinance.gov с помощью Socrata API.
Данные легко получить с помощью инструкций на сайте 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);
Результаты перефразированы ниже. Несколько вещей о результатах, которые отличаются от того, что я ожидал.
Я не ожидал раздела «Мета». Имена столбцов в разделе Meta не связаны напрямую с данными в формате {key: value}.
Я ожидал, что раздел данных будет иметь формат {ключ: значение}, а не просто «значения». Это отличается от формата, описанного на странице справки Socrata по адресу http://dev.socrata.com/docs/formats/json.html
Я не продвинутый разработчик javascript, поэтому мне интересно, как лучше поступить. В идеале мне нужен только раздел «Данные» с именами столбцов в формате {ключ: значение}. Я хотел, чтобы это было в формате {ключ: значение} для использования с такими вещами, как Google Charts.
Я предполагаю, что мне придется сохранить имена столбцов в массиве, а затем прокрутить каждую строку данных и переписать строки данных с включенными именами столбцов, чтобы получить формат {ключ: значение}.
Мой другой вариант - использовать формат API csv, который очень чистый, с красивыми чистыми столбцами и без мета-раздела. Но тогда мне пришлось бы преобразовать csv в JSON, что кажется ненужным, поскольку JSON доступен.
CSV-запрос таков:
http://data.consumerfinance.gov/api/views/6yuf-367p/rows.csv
Итак, пара вопросов:
Предоставляет ли Socrata канал API без раздела «Мета»? Есть ли фильтр, который я могу использовать, чтобы исключить раздел «Мета»?
Если ответ на № 1 отрицательный, есть ли у Socrata готовый javascript для анализа JSON, чтобы получить раздел «Данные» в формате {ключ: значение}, аналогичном формату, как описано на странице справки Socrata?
Спасибо!
{
"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" ]
......
]
}