模块一、调用中国天气网和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"}} <class ‘str‘>
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‘}} <class ‘dict‘>

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

1 user_list = ["eric","tony"]
2 r = json.dumps(user_list)
3 print(s,type(r))打印输出如下:{"desc":"invilad-citykey","status":"1002"} <class ‘str‘>

还有两个方法:

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   获取返回的内容

import requests
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接口

http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=3110436742

import requests
#使用第三方模块requests发送HTTP请求,或者XML格式内容
r = requests.get("http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=3110436742")
result = r.text #字符串类型
from xml.etree import ElementTree as ET
#解析XML格式内容
#XML接收一个参数;字符串,格式化为特殊的对象
node = ET.XML(result)
#json.loads(result)
#获取内容
if node.text == "Y":
    print("在线")
else:
    print("离线")

打印出:
在线

列车服务接口

http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib
import requests
from xml.etree import ElementTree 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
时间: 02-17

模块一、调用中国天气网和qqOnline及TrainTimeWebService接口来突出Json方法的相关文章

wp8.1 调用中国天气api

在调用api应用的过程,我们需要用hmac加密技术,它是一种基于hash的加密算法,通过一个双方共同约定的密钥,在发送message前,对密钥进行了sha散列计算,在生成消息又对此密钥进行了二次加密,通过周期性的更换密钥,安全性可以得到保障. 在wp8.1 sdk中很多传统系统类库被整编进以windows打头的命名空间中,很多刚接触wp8.1朋友可能觉得疑惑. 代码所需命名空间. 1 using System; 2 using System.Net.Http; 3 using System.Th

中国天气网api

namespace wyl.Weather { /// <summary> /// 天气预报辅助类 /// 接口数据来自于 中国天气网 /// </summary> public class WeatherHelper { private static readonly string appId = ConfigurationManager.AppSettings["appId"].ToString(); private static readonly stri

中国天气网-天气预报接口api

中国天气网地址:http://www.weather.com.cn 请求服务 : 查询实时天气信息 http://www.weather.com.cn/data/sk/101110101.html 在浏览器中输入请求地址,获得西安的天气. 其中101110101是城市的代码,如果要查询其他城市的天气,只需要修改城市的代码即可,在中国天气网中城市代码如下: 101010100=北京101010200=海淀101010300=朝阳101010400=顺义101010500=怀柔101010600=通

中国天气网城市代码

中国天气网城市代码 101010100=北京  101010200=海淀  101010300=朝阳  101010400=顺义  101010500=怀柔  101010600=通州  101010700=昌平  101010800=延庆  101010900=丰台  101011000=石景山  101011100=大兴  101011200=房山  101011300=密云  101011400=门头沟  101011500=平谷  101011600=八达岭  101011700=佛爷顶

Android解析中国天气网的Json数据

在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了.但用来学习还是能够的.为了方便我直接到数据通过txt保存到本地,它的数据能够通过这个页面获取:http://m.weather.com.cn/data/101280601.html 文件夹结构 事实上解析也非常easy.关键代码 private void json3() { InputStream

天气预报接口api(中国天气网)

中国天气weather.comhttp://m.weather.com.cn/data/101110101.html(六天预报) http://www.weather.com.cn/data/sk/101110101.html(实时天气信息) 其中101110101是城市的代码,获得城市代码进入 http://www.weather.com.cn在搜索框上输入你要需要获得天气的城市,点击查询,即可在地址栏获得相应城市编号,然后替换http://m.weather.com.cn/data/1011

C#实现中国天气网XML接口测试

点击链接查看中国天气网接口说明,最近想研究一下接口测试,源于最近一次和某公司的技术总监(交大校友)谈话,发现接口测试的需求是比较大的,于是想要研究一下. 好不容易在网上找到了一个关于中国天气网的接口说明,就是上面那篇.决定访问下这个接口,对接口返回的内容进行分析,筛选出我想要的信息. 想到当时问及的接口主要是json类型的,但是苦于没有找到json类型的接口(上文中的json接口貌似失效了),就先拿xml类型的接口试验一下,我想原理应该都差不多,只是具体的实现有些不同. 若谁有可用的json接口

【第29篇】通过HttpClient+Gson解析中国天气网的天气预报信息

http://jilongliang.iteye.com/blog/1932110 package com.test; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; im

中国天气网API无法更新

很多人发现中国天气网API无法更新了,以为是收费了或者咋滴(GQ真的都太不负责任了,什么通知都不给我们) 百度了下,发现API地址变更了: 天气预报:http://m.weather.com.cn/atad/101230201.html 实时天气:http://mobile.weather.com.cn/data/sk/101230201.html 中国天气网API无法更新