|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如果希望从一个字符串中取得一些数据出来我们可以使用int()或者float()函数
但是当遇到字典、集合甚至是类的实例这些更复杂的数据类型的时候,你就会变得手足无措了。兴许你可能会吧这些都转换为字符串,在写入到一个文本文件中保存起来,但是很快你就会发现要把这个过程反过来,从文本文件恢复数据对象,就变得异常麻烦了。
python中提供了一个模块,可以将列表和字典这些数据类型转化成二进制文件。
pickle模块
可以将所有python的对象都转换为二进制的形式存放。对象转换为二进制叫做存放:pickling,从二进制转换为对象叫做读取unpickling
永久保存指的是:将数据写入文件存储到硬盘里
文件的后缀名只是起到提醒的作用,不会影响具体写入什么样的格式
>>> import pickle
>>> my_list=[123,3.14,'xiaojiayu',['another list']]
>>> pickle_file=open('F:\\A\\my_list.pkl','wb')一定要用wb的形式,因为需要二进制写入
>>> pickle.dump(my_list,pickle_file)将列表扔进文件这个泡菜缸里
>>> pickle_file.close() 记得扔完关闭文件
>>> pickle_file=open('F:\\A\\my_list.pkl','rb')
>>> my_list2=pickle.load(pickle_file)使用load方法再将数据读取出来
>>> print(my_list2)
[123, 3.14, 'xiaojiayu', ['another list']]
单独列表这样操作毫无意义,但是在编程中遇到大量复杂的列表字典,这时候使用pickle可以使程序更优雅
import urllib.request
import json
import pickle
pickle_file=open('F:\\A\\city_data.pkl','rb')
city=pickle.load(pickle_file) #将原本一个非常长的字典写入文件,再通过pickle.load()将数据再次读取出来。
password=input('请输入城市:')
name1=city[password]
File1 =urllib.request.urlopen('http://m.weather.com.cn/data/'+name1+'.html')#打开url
weatherHTML= File1.read().decode('utf-8')#读入打开的url
weatherJSON = json.JSONDecoder().decode(weatherHTML)#创建json
weatherInfo = weatherJSON['weatherinfo']
#打印信息
print ( '城市:', weatherInfo['city'])
print ('时间:', weatherInfo['date_y'])
print ( '24小时天气:')
print ('温度:', weatherInfo['temp1'])
print ('天气:', weatherInfo['weather1'])
print ('风速:', weatherInfo['wind1'])
print ('紫外线:', weatherInfo['index_uv'])
print ('穿衣指数:', weatherInfo['index_d'])
print ('48小时天气:')
print ('温度:', weatherInfo['temp2'])
print ('天气:', weatherInfo['weather2'])
print ('风速:', weatherInfo['wind2'])
print ('紫外线:', weatherInfo['index48_uv'])
print ('穿衣指数:', weatherInfo['index48_d'])
print ('72小时天气:')
print ('温度:', weatherInfo['temp3'])
print ('天气:', weatherInfo['weather3'])
print ('风速:', weatherInfo['wind3'])
input ('按任意键退出:')
|
评分
-
查看全部评分
|