Python3学习笔记---数据存储

一、CSV

import csv dic={'year':'1991年','num':'10人评论','pcore':'10分'} f = open("data.csv",mode='a',encoding="utf8") csv_w = csv.writer(f) csv_w.writerow(dic.values()) f.close()

 

二、图片存储

#请求图片URL下载图片 img_resp = requests.get(img_url) f = open('img/'+img_name,mode='wb') f.write(img_resp.content) #通过img_resp.content 可以拿到图片的字节 f.close()

 

三、处理XML数据

import xml.sax import xml.sax.handler # python 处理xml 数据 类,将xml数据转化为字典 ''' 原数据:<?xml version='1.0' encoding='UTF-8'?><recordset><user><empNo>9321</empNo><name>张氏</name><mis>张氏</mis><system>百度</system><fullDeptName>/百度/销售支持部/业务培训组</fullDeptName><position>业务培训经理</position><positionType>管理类</positionType><ygState>正式</ygState><ygType>管理员工</ygType><zwz>管理族</zwz><rzDate>2008-04-02</rzDate><zzDate>2008-06-01</zzDate><zone>北京</zone><dxqs>15</dxqs><iflz>否</iflz><lzDate>null</lzDate><ssoid>9764043</ssoid><im>zhangshi</im><email>zhangshi@baidu.com</email></user></recordset> 7 处理后:{'empNo': '9321', 'name': '张氏', 'mis': '张氏', 'system': '百度', 'fullDeptName': '/百度/销售支持部/业务培训组', 'position': '业务培训经理', 'positionType': '管理类', 'ygState': '正式', 'ygType': '管理员工', 'zwz': '管理族', 'rzDate': '2008-04-02', 'zzDate': '2008-06-01', 'zone': '北京', 'dxqs': '15', 'iflz': '否', 'lzDate': 'null', 'ssoid': '9764043', 'im': 'zhangshi', 'email': 'zhangshi@baidu.com', 'user': 'zhangshi@baidu.com', 'recordset': 'zhangshi@baidu.com'} 8 ''' class XMLHandler(xml.sax.handler.ContentHandler): def __init__(self): self.buffer = "" self.mapping = {} def startElement(self, name, attributes): self.buffer = "" def characters(self, data): self.buffer += data def endElement(self, name): self.mapping[name] = self.buffer def getDict(self): return self.mapping #调用函数,处理xml数据 xh = XMLHandler() xml.sax.parseString(r11.encode(), xh) #r11 为XML 数据。 result_dict = xh.getDict()

 

 

四、Oracle 数据库

import cx_Oracle #pip install cx_Oracle #连接数据库 oracle_db_cur = cx_Oracle.connect('用户名/密码@IP:端口/实例名').cursor() #查询数据:提取出前50行 my_data = oracle_db_cur.execute('''select * from (select 字段1, 字段2, 字段3,...,字段n from 表名 order by update_date) where rownum < 50''') #遍历数据 my_data = my_data.fetchall() for i in my_data: print(i)

 

注:如果windows 连接报错:cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified modue ......

  解决方案:

    1、下载instant-client :https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

    2、解压软件,将文件中的所有 .dll 的文件拷贝至 Python 安装目录的 Lib/site-packages。

 

五、Redis

import redis #连接 r = redis.Redis(host='redis_IP',port=端口,db=0,password='密码') #插入str r.set('name','3333') #插入成功,返回True r.get('name') #查看结果 #插入Set r.sadd('my_set','135543') #插入成功,返回1 r.smembers('my_set') #查看结果 #使用连接池管理连接 # 使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。 # 默认,每个Redis实例都会维护一个自己的连接池。 # 可以直接建立一个连接池,然后作为Redis的构造参数,这样就可以实现多个Redis实例共享一个连接池。 pool = redis.ConnectionPool(host='127.0.0.1', port=6379,db=1,password="your_passwd") r = redis.Redis(connection_pool=pool) r.set('name', 'redis') #添加 print(r.get('name')) #获取 #######连接redis 集群########### from rediscluster import RedisCluster #依赖包安装 :pip install redis-py-cluster def redis_cluster(): redis_nodes = [ {'host':'server1','port':端口}, {'host':'server2','port':端口}, {'host':'server3','port':端口}, ] try: rc = RedisCluster(startup_nodes=redis_nodes,password='密码') return rc except Exception as e: print(e) print("error,connection Rediscluster fail!!!!") return False

 


__EOF__

本文作者语 默
本文链接https://www.cnblogs.com/weijie0717/p/15767919.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   语~默  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示