zoukankan      html  css  js  c++  java
  • 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
    IT运维开发路上的点点滴滴。。。
  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/weijie0717/p/15767919.html
Copyright © 2011-2022 走看看