wether.html5.qq.com,模块一、调用中国天气网和qqOnline及TrainTimeWebService接口来突出Json方法...

一、

浏览网页的时候,发送的请求。服务器反回来的永远是字符串,由于服务器后台使用的语言不通,所以就需要用工具反解,这里用到了json

json方法一

json.loads()将字符串转化为python的基本数据类型(内部必须是双引号)

中国天气网城市代码网络接口来

代码实现:

1 req = urllib.request.Request("http://www.weather.com.cn/adat/sk/101010300.html")2 r =urllib.request.urlopen(req)3 result = str(r.read(),encoding="utf-8")4 print(result,type(result))5

6 dic =json.loads(result)7 print(dic,type(dic))8 打印输出如下:9

10 {"weatherinfo":{"city":"朝阳","cityid":"101010300","temp":"9","WD":"西南风","WS":"2级","SD":"22%","WSE":"2","time":"10:25","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1013"}}

11 {‘weatherinfo‘: {‘city‘: ‘朝阳‘, ‘cityid‘: ‘101010300‘, ‘temp‘: ‘9‘, ‘WD‘: ‘西南风‘, ‘WS‘: ‘2级‘, ‘SD‘:

‘22%‘, ‘WSE‘: ‘2‘, ‘time‘: ‘10:25‘, ‘isRadar‘: ‘1‘, ‘Radar‘: ‘JC_RADAR_AZ9010_JB‘, ‘njd‘: ‘暂无实况‘, ‘qy‘: ‘1013‘}}

json.dumps()将python的基本数据类型转换成字符串

1 user_list = ["eric","tony"]2 r =json.dumps(user_list)3 print(s,type(r))

打印输出如下:

{"desc":"invilad-citykey","status":"1002"}

还有两个方法:

json.load()

json.dump()

1 #下面不经常用

2 #1、下面作用先把dic转化为字符串,2、然后创建db文件,并且把内容写到里面

3 dic = {‘k1‘:12,‘k2‘:2}4 json.dump(dic,open(‘db‘,‘w‘))5 上面只要执行就会自动创建db文件

6 #1、先读db中的内容,2、将字符串转化为字典

7 r = json.load(open("db","r"))8 print(r,type(r))

json只能反解一些通用的,如果只是python特有的,那么就反解不了了

二、第三方模块的安装

第三方模块的安装

第三方模块的安装

1)  安装  利用软件管理工具 pip3

安装pip3,依赖setuptools

把pip3安装到环境变量里面,之后如果想安装其他模块在终端输出pip3 install 第三方模块

2)  源码安装

1、  下载源码包,安装、解压、进入目录找到setup.py

2、  打开终端进入setup目录中

3、  执行setup.py install

三、requests初式

1)安装pip3,python3中在scripts包里面包含所以,只需要把包含scropts文件包的路径安装在当前用户下的环境变量里面,之后打开cmd 直接pip3 install requests

x=requests.get(url)获取返回值

x.text   获取返回的内容

importrequests

response= requests.get("http://www.weather.com.cn/adat/sk/101010300.html")

response.encoding= "utf-8" #调整乱码

result = response.text #.text:获取返回的内容

print(result)

四、XML初试

1、腾讯qqOnline接口

importrequests#使用第三方模块requests发送HTTP请求,或者XML格式内容

r = requests.get("http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=3110436742")

result= r.text #字符串类型

from xml.etree importElementTree as ET#解析XML格式内容#XML接收一个参数;字符串,格式化为特殊的对象

node =ET.XML(result)#json.loads(result)#获取内容

if node.text == "Y":print("在线")else:print("离线")

打印出:

在线

列车服务接口

#!/usr/bin/env python#-*- coding:utf-8 -*-

importurllibimportrequestsfrom xml.etree importElementTree as ET#使用内置模块urllib发送HTTP请求,或者XML格式内容

"""f = urllib.request.urlopen(‘http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=‘)

result = f.read().decode(‘utf-8‘)"""

#使用第三方模块requests发送HTTP请求,或者XML格式内容

r = requests.get(‘http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=k234&UserID=‘)

result=r.text#解析XML格式内容

root =ET.XML(result)#iter代表迭代

for node in root.iter("TrainDetailInfo"):print(node.find("TrainStation").text,node.find("StartTime").text)#for node in root.iter(‘TrainDetailInfo‘):#print(node.find(‘TrainStation‘).text,node.find(‘StartTime‘).text,node.tag,node.attrib)##node.attrib是打印出TrainDetailInfo 后面属性的字典的形式

打印输出:

E:/project/untitled3/python/模块/xml模块/列车时刻表.py

上海(车次:K234\K235)11:12:00昆山11:50:00苏州12:18:00南京15:15:00蚌埠18:03:00徐州20:25:00砀山21:27:00商丘22:16:00宁陵县22:48:00兰考23:24:00开封23:59:00郑州01:15:00安阳03:41:00邯郸04:34:00邢台05:09:00石家庄 None

原文:http://www.cnblogs.com/pyrene/p/6418169.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值