Python 学习之urllib模块---用于发送网络请求,获取数据(5)

查询城市天气最后一节

需要导入上一节的结果city10.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib.request
from  city10 import city     #从city10.py里导入city变量名称
import json         #json包,loads的用法
import traceback

cityname=input(‘你想查询什么城市的天气?\n‘)

citycode=city.get(cityname) # citycode=city[cityname]
#print (citycode)

#print (cityname)

if citycode:
    try:
        web=‘http://www.weather.com.cn/data/cityinfo/%s.html‘ %citycode
        content=urllib.request.urlopen(web).read().decode()
        data=json.loads(content)
        #print (data)
        print(type(content))
        print(type(data))

result=data[‘weatherinfo‘] #获取weatherinfo键的值为{‘cityid‘:‘101010100‘}
        # 就好比result={}
        a=(‘%s\n%s~%s‘)%(result[‘weather‘], result[‘temp1‘], result[‘temp2‘])
        print(a)
    except Exception as e:
        #traceback.print_exc()
        print(Exception,":",e)
        print(‘查询失败‘)
else:
    print(‘没有找到该城市!‘)

时间: 2024-10-29 12:31:20

Python 学习之urllib模块---用于发送网络请求,获取数据(5)的相关文章

Python 学习之urllib模块---用于发送网络请求,获取数据

1.urllib urllib是Python标准库的一部分,包含urllib.request,urllib.error,urllib.parse,urlli.robotparser四个子模块. (1)urllib.request用法 1)urlopen函数:用于打开一个URL(urlopen返回一个类文件对象,可以像文件一样操作) 例如: import urllib.request web=urllib.request.urlopen('http://www.baidu.com') conten

Python 学习之urllib模块---用于发送网络请求,获取数据(2)

接着上一次的内容. 先说明一下关于split()方法:它通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串(把一个字符串分割成很多字符串组成的list列表) 语法:str.split(str="", num=string.count(str)). 参数:str 分隔符,默认为空格.num 分割次数 返回值:返回分割后的字符串列表 例如:你需要将一个英语句子中的每一个单词拿出来单独处理,就可以将其进行分割. 如:a=' I am a new stude

Python 学习之urllib模块---用于发送网络请求,获取数据(3)

上节内容,是得到了省/直辖市编码,如web='http://m.weather.com.cn/data5/city01',我们需要继续获取此接口的数据,于是进行下面的操作 for  i  in   b:                #i=b[0],b[1],b[2]...... code=i.split('|')[0] web='http://m.weather.com.cn/data5/city%s' web1=web %code content2=urllib.request.urlope

Python 学习之urllib模块---用于发送网络请求,获取数据(4)

承接将查询城市编码的结果保存到文件中,以字典的形式保存,目的是为了在查询某个城市的天气的时候,能够通过输入的城市名称,找到对应的城市编码.所以此结果字典的数据结构,就是city={城市名称:城市编码} so,可以这样编写: 当然,你可以打印出结果看看. 现在我们就需要将这个结果写到文件中去了.注意,这里就需要用到昨天说的python3编码的知识啦,结尾有提到哦. import  codecs ff=codecs.open('c:\Python34\city10.py','w','utf-8')

Redux中发送异步请求获取数据

一.在componentDidMount中进行异步数据的获取 二.通过initListAction创建action 三.然后再通过store.dispatch派发给store 四.store再自动转发给reducer 五.reducer通过深拷贝处理数据后,再将newState返回给store 原文地址:https://www.cnblogs.com/nayek/p/12388881.html

Python学习之cookielib模块

cookielib是一个用于处理客户端HTTP cookie的模块 https://docs.python.org/2/library/cookielib.html?highlight=cookielib#cookielib In [191]: import cookielib,urllib2 In [192]: cj=cookielib.CookieJar() In [193]: openner=urllib2.build_opener(urllib2.HTTPCookieProcessor(

python学习笔记[3]-邮件的发送

本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:    1.smtplib模块 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行

python学习之random模块

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

python通过get方式,post方式发送http请求和接收http响应-urllib urllib2

python通过get方式,post方式发送http请求和接收http响应-- import urllib模块,urllib2模块, httplib模块 http://blog.163.com/[email protected]/blog/static/132229655201231085444250/ 测试用CGI,名字为test.py,放在apache的cgi-bin目录下:#!/usr/bin/pythonimport cgidef main():     print "Content-t