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运维开发路上的点点滴滴。。。
  • 相关阅读:
    find the safest road
    杭电1874(畅通工程续)
    Red and Black
    运行和控制 Nginx 命令行参数和信号
    对中文版“Siri”打个招呼吧!
    《星际迷航》语音翻译器成真
    程序员丰厚的待遇能持续多久?
    Nginx 日志分析 AWStats + JAWStats 安装配置
    RHEL 5.4 + Nginx + Mediawiki
    麻省理工科技创业之:Win 8新概念
  • 原文地址:https://www.cnblogs.com/weijie0717/p/15767919.html
Copyright © 2011-2022 走看看