Socrata consumerfinance.gov投诉数据库APIJSON解析
Socrata consumerfinance.gov complaintdatabase API JSON parsing
我想使用 Socrata API 检索 consumerfinance.gov 投诉数据库数据。
使用 http://www.consumerfinance.gov/complaintdatabase/technical-documentation/#api-documentation
网站上的说明检索数据很简单
我将以下查询与“6yuf-367p”一起使用以获取 'prepaid card' 产品数据,并使用“.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' 部分。列名位于 Meta 部分,与 { key: value } 格式的数据没有直接关联。
我希望数据部分具有 { key: value } 格式,而不仅仅是 'values'。这与 Socrata 帮助页面上描述的格式不同
http://dev.socrata.com/docs/formats/json.html
我不是高级 javascript 开发人员,所以我想知道如何最好地进行。理想情况下,我只需要 'Data' 部分的列名采用 { key: value } 格式。我希望它以那种 { key: value } 格式与 Google 图表一起使用。
我想象我必须将列名保存在数组中,然后遍历每个数据行并重写包含列名的数据行以获得 { key: value } 格式。
我的另一个选择是使用 csv API 格式,这种格式超级干净,列非常干净,没有 Meta 部分。但是然后我必须将 csv 转换为 JSON 这似乎是不必要的,因为 JSON 可用。
CSV 查询是这样的:
http://data.consumerfinance.gov/api/views/6yuf-367p/rows.csv
几个问题:
socrata 是否提供没有 'Meta' 部分的 API 提要?有没有我可以用来排除 'Meta' 部分的过滤器?
如果 #1 的答案是否定的,Socrata 是否准备好 [=74=] 解析 JSON 以获得 { key: value } 中的 'Data' 部分格式与 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" ]
......
]
}
看来你抓错了JSONURL。您抓取的那个用于 JSON export,它将以 JSON 格式向您转储整个数据集以及所有元数据,但它不会t 提供可查询的 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
祝你好运,如果您还有其他问题,请告诉我。
我想使用 Socrata API 检索 consumerfinance.gov 投诉数据库数据。
使用 http://www.consumerfinance.gov/complaintdatabase/technical-documentation/#api-documentation
网站上的说明检索数据很简单我将以下查询与“6yuf-367p”一起使用以获取 'prepaid card' 产品数据,并使用“.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' 部分。列名位于 Meta 部分,与 { key: value } 格式的数据没有直接关联。
我希望数据部分具有 { key: value } 格式,而不仅仅是 'values'。这与 Socrata 帮助页面上描述的格式不同 http://dev.socrata.com/docs/formats/json.html
我不是高级 javascript 开发人员,所以我想知道如何最好地进行。理想情况下,我只需要 'Data' 部分的列名采用 { key: value } 格式。我希望它以那种 { key: value } 格式与 Google 图表一起使用。
我想象我必须将列名保存在数组中,然后遍历每个数据行并重写包含列名的数据行以获得 { key: value } 格式。
我的另一个选择是使用 csv API 格式,这种格式超级干净,列非常干净,没有 Meta 部分。但是然后我必须将 csv 转换为 JSON 这似乎是不必要的,因为 JSON 可用。
CSV 查询是这样的:
http://data.consumerfinance.gov/api/views/6yuf-367p/rows.csv
几个问题:
socrata 是否提供没有 'Meta' 部分的 API 提要?有没有我可以用来排除 'Meta' 部分的过滤器?
如果 #1 的答案是否定的,Socrata 是否准备好 [=74=] 解析 JSON 以获得 { key: value } 中的 'Data' 部分格式与 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" ]
......
]
}
看来你抓错了JSONURL。您抓取的那个用于 JSON export,它将以 JSON 格式向您转储整个数据集以及所有元数据,但它不会t 提供可查询的 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
祝你好运,如果您还有其他问题,请告诉我。