鱼C论坛

 找回密码
 立即注册
查看: 2737|回复: 0

[技术交流] python入门L31永久储存

[复制链接]
发表于 2017-7-14 04:38:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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 ('按任意键退出:')

评分

参与人数 2荣誉 +3 鱼币 +4 收起 理由
康小泡 + 1
小甲鱼 + 3 + 3 热爱鱼C^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表