学习 Google FusionTables,所以可能会犯一个非常初学者的错误。通过 ChartTools API 但不是通过 Ajax API 查询 Google Fusion Tables 时,我得到了正确的结果。奇怪的是,它为部分查询提供了正确的结果,而不是全部。我犯错了吗?
图表工具 API 工作:
通过图表工具 API 查询 Google FusionTable 似乎工作正常,尽管有 500 行的限制。例如,这个查询: SELECT ETHUN, COUNT() FROM 1Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI GROUP BY ETHUN
使用 Google Chart Tools API,URL 是http://www.google.com/fusiontables/gvizdata?tq=SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&tqx= reqId%3A0,它返回一个 JSON 函数:
google.visualization.Query.setResponse({
version:'0.5',
reqId:'0',status:'ok',
table:{
p:{totalrows:3},
cols:[
{id:'col6',label:'ETHUN',type:'number'},
{id:'#agg#COUNT',label:'count()',type:'number'}
],
rows:[
{c:[{v:1.0},{v:3308.0}]}
{c:[{v:2.0},{v:18702.0}]},
{c:[{v:-9.0},{v:10768.0}]},
]
}
})
特别要注意值 {1,2,-9} 作为 ETHUN 的值。
新的 FusionTables API 不起作用: 另一方面,通过 Ajax API 进行相同的查询返回正确的频率,但频率描述的值本身返回 NaN: https ://www.googleapis.com/fusiontables/v1/query?sql =SELECT%20ETHUN%2C%20COUNT()%20%20FROM%201Nynh5pPrj1q8JqbalppAm-qzAsgKvL0ZRala7VI%20GROUP%20BY%20ETHUN&key=AIzaSyBT_ZCriV-Tm78KsJiQp6KKhjDwMhP0tYM
返回此 JSON:
{
"kind": "fusiontables#sqlresponse",
"columns": [ "ETHUN", "count()" ],
"rows": [
[ NaN, "3308" ]
[ NaN, "18702" ],
[ NaN, "10768" ],
]
}
为什么它会给我 NaN 而不是 {1, 2, -9} ?
更新: 我现在相信这个问题是新的 Fusion Tables SQL 独有的,问题略有编辑。
(这里是示例 Fusion Table的链接)
Fusion Tables SQL API(现已弃用)也可以使用
奇怪的是这个链接也可以正常工作,https://www.google.com/fusiontables/api/query? sql=SELECT%20ETHUN,%20COUNT%28%29%20FROM%204579147%20GROUP%20BY%20ETHUN&alt=json-in- script&jsonCallback=onResponse并以另一种格式返回以下 JSONP 响应:
onResponse({"table":{"cols":["ETHUN","count()"],"rows":[["2",18702],["-9",10768],["1",3308]]}})