美文网首页有梦才会去努力
python-从数据库中取出存储的告警信息

python-从数据库中取出存储的告警信息

作者: 余生还长你别慌 | 来源:发表于2019-08-27 21:47 被阅读0次

    前面我们将每天的告警存进了数据库,那下一步就是取出数据进行分析了。今天我们尝试取出数据。一种是取某日的数据,一种是取某几天的数据。

    1. 用到csv,sqlite3模块,csv用于取出的数据写入csv文件,sqlite3用于数据库连接以及取数据;
    2. 两个函数,write_csv功能是写入csv文件,read_db是从数据库读数据
    3. main函数就是引用上面的两个函数。

    过程很简单,注意的点,就是select命令格式,以及writerows跟的参数是列表为宜。

    # -*- encoding=UTF-8 -*-
    __author__ = 'wjj1982'
    __date__ = '2019/8/27 13:27'
    __product__ = 'PyCharm'
    __filename__ = '从数据库中读出特定日期的告警'
    
    import sqlite3
    import csv
    
    
    def write_csv(filename, rows):
        # filename是最终存储的csv文件
        wf = open(filename, 'w', newline='')
        writer = csv.writer(wf)
        header = ('告警日期', '网元北向标识', '网元', '告警码名称', '发生时间', '告警原因', '位置')
        writer.writerows([header])
        for row in rows:
            writer.writerows([row])
    
    
    def read_db(db_name, db_table_name):
        # 连接数据库
        conn = sqlite3.connect(db_name)
        # 游标对象
        cursor = conn.cursor()
        # # 查询数据库中表里的所有数据,取8月5日的告警
        # cursor = conn.cursor("SELECT * from {} WHERE 告警日期='2019-08-05'".format(db_table_name))
        # 查询数据库中表里的所有数据,取8月5日到8月7日的告警
        cursor = cursor.execute("SELECT * from {} WHERE 告警日期 between '2019-08-05' and '2019-08-07'".format(db_table_name))
        # 通过游标执行数据库查找命令,并查找所有符合条件的行
        rows = cursor.fetchall()
        # 最后关闭游标关闭数据库连接
        cursor.close()
        conn.close()
        return rows
    
    
    def main():
        """将数据库中特定时间的行取出并写入csv文件"""
        # 定义变量
        db_name = 'current_FM_chengdian.db'
        db_table_name = 'FMTable'
        filename = '数据存储表.csv'
    
        # 读取数据库
        rows = read_db(db_name, db_table_name)
    
        # 存储数据到csv文件中
        write_csv(filename, rows)
    
    
    if __name__ == '__main__':
        main()
    
    

    相关文章

      网友评论

        本文标题:python-从数据库中取出存储的告警信息

        本文链接:https://www.haomeiwen.com/subject/emgyectx.html