Python Web-第六周-JSON and the REST Architecture(Using Python to Access Web Data)
1.JavaScript Object Notation JSON
1.JSON 官方介绍 http://www.json.org/json-zh.html
2.json1.py
import json
data='''
{
"name":"Chuck",
"phone":
{
"type":"intl",
"number":"+1231231234"
},
"email":
{
"hide":"yes"
}
}'''
info =json.loads(data)
print'Name:',info["name"]
print'Hide:',info["email"]["hide"]
3.josn2.py
import json
input='''
[
{
"id":"001",
"x":"2",
"name":"dch"
},
{
"id":"007",
"x":"7",
"name":"zxc"
}
]'''
info =json.loads(input)#deserialize
print'User count:',len(info)
for item in info:
print'Name:',item['name']
print'Id:',item['id']
print'X:',item['x']
2.Service Oriented Approach SOA 服务导向架构
1.什么是SOA
SOA是一种架构模型,由网站服务技术等标准化组件组成,
目的是为企业、学校或提供网络服务单位建构一个具弹性、可重复使用的整合性接口,
促进内外部应用程序、用户、与部门等的沟通,提升网络服务。
3.Accessing APIs in Python
1.API Application Program Interface

2.Web Service Technologies

3.Google Geocoding
http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Ann+Arbor%2C+MI
{
"results":[
{
"address_components":[
{
"long_name":"安娜堡",
"short_name":"安娜堡",
"types":["locality","political"]
},
{
"long_name":"沃什特瑙郡",
"short_name":"沃什特瑙郡",
"types":["administrative_area_level_2","political"]
},
{
"long_name":"密歇根州",
"short_name":"MI",
"types":["administrative_area_level_1","political"]
},
{
"long_name":"美国",
"short_name":"US",
"types":["country","political"]
}
],
"formatted_address":"美国密歇根州安娜堡",
"geometry":{
"bounds":{
"northeast":{
"lat":42.3239728,
"lng":-83.6758069
},
"southwest":{
"lat":42.222668,
"lng":-83.799572
}
},
"location":{
"lat":42.2808256,
"lng":-83.7430378
},
"location_type":"APPROXIMATE",
"viewport":{
"northeast":{
"lat":42.3239728,
"lng":-83.6758069
},
"southwest":{
"lat":42.222668,
"lng":-83.799572
}
}
},
"place_id":"ChIJMx9D1A2wPIgR4rXIhkb5Cds",
"types":["locality","political"]
}
],
"status":"OK"
}
import urllib
import json
serviceurl ='http://maps.googleapis.com/maps/api/geocode/json?'
#http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Ann+Arbor%2C+MI
whileTrue:
address = raw_input('Enter location: ')
if len(address)<1:break
url = serviceurl + urllib.urlencode({'sensor':'false','address': address})
print'Retrieving', url
# file method successd
my_file=open("C:\Users\DUANCHENGHUA\Desktop\json","r")
data=my_file.read()
# url method failed open
'''
uh = urllib.urlopen('http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=ChongQing%2CChina')
data = uh.read()
'''
try: js = json.loads(str(data))
except: js =None
if'status'notin js or js['status']!='OK':
print'==== Failure To Retrieve ===='
print data
continue
print json.dumps(js, indent=4)
lat = js["results"][0]["geometry"]["location"]["lat"]
lng = js["results"][0]["geometry"]["location"]["lng"]
print'lat',lat,'lng',lng
location = js['results'][0]['formatted_address']
print location
4.API Security and Rate Limiting

Words:
IT Information Technology、retrieve 检索
Python Web-第六周-JSON and the REST Architecture(Using Python to Access Web Data)的更多相关文章
- Python 爬虫十六式 - 第一式:HTTP协议
HTTP:伟大而又无闻的协议 学习一时爽,一直学习一直爽! Hello,大家好啊,我是Connor,一个从无到有的技术小白.有的人一说什么是HTTP协议就犯愁,写东西的时候也没想过什么是HTTP协 ...
- Python爬虫十六式 - 第三式:Requests的用法
Requests: 让 HTTP 服务人类 学习一时爽,一直学习一直爽 Hello,大家好,我是Connor,一个从无到有的技术小白.今天我们继续来说我们的 Python 爬虫,上一次我们说到了 ...
- Python 爬虫十六式 - 第二式:urllib 与 urllib3
Python请求标准库 urllib 与 urllib3 学习一时爽,一直学习一直爽! 大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了什么是HTTP协议,那么这一次我们就要动 ...
- 【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化
谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询 ...
- Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...
- ASP.NET Web API中的JSON和XML序列化
ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok ...
- Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
PyQuery:一个类似jquery的python库 学习一时爽,一直学习一直爽 Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 BeautifulSoup 美味 ...
- Python 爬虫十六式 - 第七式:正则的艺术
RE:用匹配来演绎编程的艺术 学习一时爽,一直学习一直爽 Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 pyquery 今天我们将迎来我们数据匹配部分的最后一位 ...
- Python爬虫十六式 - 第四式: 使用Xpath提取网页内容
Xpath:简单易用的网页内容提取工具 学习一时爽,一直学习一直爽 ! Hello,大家好,我是Connor,一个从无到有的技术小白.上一次我们说到了 requests 的使用方法.到上节课为止, ...
随机推荐
- mysql 5.7 支持json格式
1.JSON格式的支持:mysql> create table user ( uid int auto_increment, -> data json,primary key(u ...
- [Python Study Notes]WdSaveFormat 枚举
WdSaveFormat 枚举 指定要在保存文档时使用的格式. 版本信息 已添加版本: 名称 值 说明 wdFormatDocument 0 Microsoft Word 格式. wdFormatDO ...
- Arbiter 系统使用说明
Arbiter 系统使用说明 Overview Arbiter是NOI系列赛事的官方评测软件, 由北航的相关人员开发. 在OIer会经历的几场大型比赛中, 除了省选和PKUSC/THUSC不使用Arb ...
- 从零开始学Python--数据类型之字符串
一.Python中的数据类型 · 整数, 如 1 -100 · 长整数, 是比较大的整数,Python 2里面有long长整数:Python 3里面没有 · 浮点数 如 1.23.3E-2 ...
- Flex进度条
Flex中,进度条的皮肤,以及使用Timer让它自动增加~ mxml中: <mx:ProgressBar id="proBar" verticalCenter="0 ...
- 利用Azure嵌套虚拟化,解决公有云上机器不能启动的问题
很多时候我们都会碰到因为意外重启,机器硬盘被损坏导致无法启动,或者是因为各种原因Windows上的RDP服务启动不了,Linux上的SSH无法链接等等问题.碰到这种问题基本上很难解决以前都是将VHD下 ...
- 树莓派系列教程:1.环境与系统,无显示器无键盘无网线联网并使用PuTTy与VNC图形界面远程登录
本文所需物品清单: Raspberry Pi 3 Model B 主板.SD卡与读卡器(用于烧录系统) 资料整理来源在文尾 需要下载的资源与工具: 推荐系统-Raspbian 树莓派官方深度定制的硬件 ...
- CentOS下安装配置cmake
安装环境:CentOS-6.4 安装方式:源码编译安装 软件:cmake-2.8.5.tar.gz 下载地址暂时不提供,去百度搜一下准有 安装前提 系统中已经安装了gcc. ncurses-de ...
- DxPackNet 3.音频捕捉(录音)
用DxpackNet捕捉音频其实很简单 1.初始化控件 IDxMicrophCapture microphone; private void Form1_Load(object sender, Eve ...
- ElasticSearch 5.0.0 集群安装部署文档
1. 搭建环境 3台物理机 操作系统 centos7 es1 192.168.31.141 4g内存 2核 es2 192.168.31.142 4g内存 2核 es3 ...