• python 比较常见的工具方法


    下面是一些工作过程中比较常见的工具方法,但不代表最终答案。希望能对你有所帮助,如果您有更好更多的方法工具,欢迎推荐!

    1. 按行读取带json字符串的文件

    # -*- coding:utf-8 -*-
    import json
    import sys
    
    with open("./aldwx-log-20.20190619194001.json.COMPLETED",'r') as load_f:
        for line in load_f:
            try:
                load_dict = json.loads(line)
                #server_time = load_dict['server_time']
                #et = load_dict['et'] if load_dict.has_key("et") else server_time   #三元表达式
            except :
                pass
    

    2. 获取每日的时间列表

    # -*- coding:utf-8 -*-
    import datetime
    def getBetweenDay():
        date_list = []
    
        #获取开始与结束时间,范例为获取最近7天时间
        now_time = datetime.datetime.now()
        begin_day = (now_time+datetime.timedelta(days=-7)).strftime("%Y%m%d")
        end_day = (now_time+datetime.timedelta(days=-1)).strftime("%Y%m%d")
    
        begin_date = datetime.datetime.strptime(begin_day, "%Y%m%d")
        end_date = datetime.datetime.strptime(end_day, "%Y%m%d")
    
        while begin_date <= end_date:
            date_str = begin_date.strftime("%Y%m%d")
            date_list.append(date_str)
            begin_date += datetime.timedelta(days=1)
        return date_list
    

    3. 计量单位格式化输出

    # -*- coding:utf-8 -*-
    #计量单位格式化输出
    def formatData(value):
        units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB' ]
        try:
            size = float(value)
        except:
            return False
    
        if size < 0:
            return False
    
        for unit in units:
            if size >= 1024:
                #中间结果保留4位小数。网上很多资料只注重最终的结果,导致最终结果误差很大
                size = float('%.4f' %( size / 1024))
            else:
                size_h = '{0:.2f} {1}'.format(size, unit)
                return size_h
    
        #超大数据仅保留到PB级
        size_h = '{0:.2f} {1}'.format(size, units[-1])
        return size_h
    

    4. 元组转换为字典

    # -*- coding:utf-8 -*-
    def tuple_to_dic(results):
        """元组转换为字典,字典key为元组第一个值,字典值为元组第二个值的列表集"""
        tmp_dic = {}
        for i in range(len(results)):
            if tmp_dic.has_key(results[i][0]):
                tmp_dic[results[i][0]].append(results[i][1])
            else:
                tmp_dic[results[i][0]] = []
                tmp_dic[results[i][0]].append(results[i][1])
        return tmp_dic
    

    示例:
    代码如下

    # -*- coding:utf-8 -*-
    
    results = ((20190713,1),(20190713,2),(20190713,3),(20190714,4))
    
    def tuple_to_dic(results):
        """元组转换为字典,字典key为元组第一个值,字典值为元组第二个值的列表集"""
        tmp_dic = {}
        for i in range(len(results)):
            if tmp_dic.has_key(results[i][0]):
                tmp_dic[results[i][0]].append(results[i][1])
            else:
                tmp_dic[results[i][0]] = []
                tmp_dic[results[i][0]].append(results[i][1])
        return tmp_dic
    dic = tuple_to_dic(results)
    print dic
    

    输出结果为

    {20190713: [1, 2, 3], 20190714: [4]}
    

    持续更新中...

  • 相关阅读:
    一个屌丝程序猿的人生(一百零二)
    一个屌丝程序猿的人生(一百零一)
    一个屌丝程序猿的人生(一百)
    一个屌丝程序猿的人生(九十九)
    JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术
    JavaEE开发之SpringMVC中的自定义拦截器及异常处理
    JavaEE开发之SpringMVC中的路由配置及参数传递详解
    JavaEE开发使用Maven管理的SpringMVC工程
    JavaEE开发之Spring中的条件注解、组合注解与元注解
    JavaEE开发之Spring中的多线程编程以及任务定时器详解
  • 原文地址:https://www.cnblogs.com/guoew/p/11131691.html
Copyright © 2020-2023  润新知