在看机器学习实战中K-means一章,练习中需要调用Yahoo PlaceFinder API 为地点添加经纬度,语言是python。申请到了appid但调用好像还要收费,要填写银行卡号才能用,没管那么多直接用了。而且网上关于这个API调用的参考文章很少。鼓捣半天用JSON加载API URL进行调用,但结果显示ValueError: No JSON object could be decoded。

放弃之,听同学说Google API好用就开始试试,发现网上关于google API的文章一搜一把。但还是官网文档看起来靠谱。

1、在Google API console申请API keyhttps://code.google.com/apis/console/?noredirect,步骤可参考这篇Places API introduction https://developers.google.com/places/documentation/

2、因为主要用经纬度的API,申请了 Geocoding API,参考文档https://developers.google.com/maps/documentation/geocoding/?csw=1#Geocoding。在看了Geocoding API Request Format,JSON Output Formats后对这个API的请求和返回形式大概了解了。然后自己改代码调用,遇到下面几个问题:

2.1 还是一直出现ValueError: No JSON object could be decoded,说明JSON没有加载到东西。不知道是API的问题还是JSON用法的问题。直接在网址框里输入参考文档里的JSON request地址 https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false&key=API_KEY,换上自己的API Key,sensor改为false。弹出个json.json文件,保存下来用Notepad打开来看,和JSON Output Formats一样一样的。确定按这么去拼接API request可行。

2.2 检查自己的地址,少了/api/,添上。JSON加载上了数据,但是返回的是{u'status': u'REQUEST_DENIED', u'error_message': u'Requests to this API must be over SSL.', u'results': []}。文档虽然这种status情况是sensor没赋值,我sensor赋了false。继续比较我的URL和参考文档的URL,此时就有一处不同,就是人家是https而我是http,改了,就好了。

事实证明了文档强大的重要性。

Day6 google Geocoding API的更多相关文章

  1. Python+Google Geocoding

    本文主要介绍使用Python调用Google Geocoding API进行地址到地理坐标的转换. Google Geocoding参考https://developers.google.com/ma ...

  2. Google Maps API Web Services

    原文:Google Maps API Web Services 摘自:https://developers.google.com/maps/documentation/webservices/ Goo ...

  3. Google Maps API的使用

    之前在学习了简单的API调用后,查看了几个知名网站的API调用方法,发现Google的API调用还是相对比较简单的.下面就从API key的获取.googlemaps的安装,再到实际使用做一下说明. ...

  4. 使用google 语言 api 来实现整个网站的翻译

    ---恢复内容开始--- 使用google 语言 api 来实现整个网站的翻译,这时我们可以利用免费的google api来做处理来实现多语言的功能. 放在 HTML 文件中 <div id=& ...

  5. Google Map API Version3 :代码添加和删除marker标记

    转自:http://blog.sina.com.cn/s/blog_4cdc44df0100u80h.html Google Map API Version3 教程:在地图 通过代添加和删除mark标 ...

  6. Google Map API V3开发(1)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  7. Google Map API V3开发(2)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  8. Google Map API V3开发(3)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  9. Google Map API V3开发(4)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

随机推荐

  1. python: HTML中的选择器

    id选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. css3 calc()方法详解

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性 ...

  3. Linux - 进程查看与管理

    标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...

  4. 个推,手机推送api的使用

    个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息.所以用户是被动的接收信息.当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实 ...

  5. 【OOAD】设计模式概述

    模式的诞生与定义 模式起源于建筑业而非软件业模式(Pattern)之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士<A Pattern Langua ...

  6. == 区别 equals

    ==操作符专门用来比较值是否相等 int a=10; int b=10; 则 a==b, 返回 true. 但是, String a = new String("foo"); St ...

  7. UART总线(异步)

    UART用一条传输线将数据一位位地顺序传送,以字符为传输单位通信中两个字符间的时间间隔多少是不固定的, 然而在同一个字符中的两个相邻位间的时间间隔是固定的 数据传送速率用波特率来表示, 指单位时间内载 ...

  8. 客户端判断是否为IE9以上版本

    function detectBrowser() { var browser = navigator.appName if(navigator.userAgent.indexOf("MSIE ...

  9. mysql sql常用语句大全

    SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...

  10. SPSS数据分析——t检验

    SPSS中t检验全都集中在分析—比较均值菜单中.关于t检验再简单说一下,我们知道一个统计结果需要表达三部分内容,即集中性.变异性.显著性. 集中性的表现指标是均值变异的的表现指标是方差.标准差或标准误 ...