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

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

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

2. 获取每日的时间列表

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

3. 计量单位格式化输出

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

4. 元组转换为字典

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

示例:

代码如下

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

输出结果为

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

持续更新中...

python 比较常见的工具方法的更多相关文章

  1. Python中常见字符串去除空格的方法总结

    Python中常见字符串去除空格的方法总结 1:strip()方法,去除字符串开头或者结尾的空格>>> a = " a b c ">>> a.s ...

  2. 基于Python的XSS测试工具XSStrike使用方法

    基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ...

  3. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  4. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

  5. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

  6. SQLMAP注入教程-11种常见SQLMAP使用方法详解

    sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了.今天把我一直 ...

  7. Python实现代码统计工具——终极加速篇

    Python实现代码统计工具--终极加速篇 声明 本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对 ...

  8. 潭州课堂25班:Ph201805201 爬虫基础 第七课 Python与常见加密方式 (课堂笔记)

    打开图形界面  18版 Python与常见加密方式 前言 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes. 所以当我们在Python中进行加密操作的时 ...

  9. [转]11种常见sqlmap使用方法详解

    sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了.今天把我一直 ...

随机推荐

  1. python(递归函数)

    1.描述: 递归函数:在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 2.递归函数特性: 必须有一个明确的结束条件: 每次进入更深一层递归时,问题规模相比上次递归 ...

  2. 题目分享T

    题意:蛐蛐国里现在共有n只蚯蚓(n为正整数).每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,...,n),并保证所有的长度都是非负整数(即:可 能存在长度为0的蚯蚓).每一秒,神刀手会 ...

  3. nginx常见应用实例

    1.nginx 中 location 应用实例location 是 nginx 的精华,nginx 就是通过拦截到的请求去对配置好的 location 块(location block)进行请求代理的 ...

  4. andorid jar/库源码解析之Dagger/Dagger2

    目录:andorid jar/库源码解析 Dagger.Dagger2: 作用: 1.用于解耦Activity和业务逻辑 2.在使用业务的时候,不需要重复编写new代码. 3.当业务变化的时候,不需要 ...

  5. Q - Play With Sequence HDU - 3971 线段树 重新排序建树

    Q - Play With Sequence HDU - 3971 这个题目是一个线段树,比较特别的线段树,就是c询问一定次数之后重新排序建树来优化减低复杂度. 第一次碰到这种题目有点迷. 这个题目写 ...

  6. 201771010113 李婷华 《面向对象程序设计(Java)》第十六周总结

    一.理论知识部分 1.程序是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝 是一段静态的代码,它应用程序执行蓝本. 2.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完 ...

  7. 【Kafka】Producer API

    Producer API Kafka官网文档给了基本格式 地址:http://kafka.apachecn.org/10/javadoc/index.html?org/apache/kafka/cli ...

  8. STM32 TIM 编码器模式采集编码器信号

    layout: post tags: [STM32] comments: true 文章目录 @[toc] 什么是正交解码? 编码器接口模式 标准库接口 TIM_TimeBaseInitTypeDef ...

  9. 安装laravel环境之homestead(for mac)

    1.先下载virtualbox + vagrant 2.执行命令 vagrant box add laravel/homestead 3.新建一个空文件夹,在里面下载代码.我是放在当前用户下的新建的W ...

  10. 部署SSL站点 IIS+asp.net

    使用SSL必须要有证书,今天我们就使用IIS内置的证书完成SSL的部署. 1.打开MMC证书管理器,文件->添加/删除管理单元->证书,双击->确定 2.找到:个人->证书下有 ...