1.获取输入时间段内的所有时间列表

  1. import datetime
  2. def get_every_day(start, end):
  3. """
  4. :param start: str
  5. :param end: str
  6. :return:
  7. """
  8. if not start:
  9. start = "2021-01-01"
  10. if not end:
  11. end = datetime.datetime.today().strftime("%Y-%m-%d")
  12. data = []
  13. start_time = datetime.datetime.strptime(start, "%Y-%m-%d")
  14. end_time = datetime.datetime.strptime(end, "%Y-%m-%d")
  15. while start_time <= end_time:
  16. date_str = start_time.strftime("%Y-%m-%d")
  17. data.append(date_str)
  18. start_time += datetime.timedelta(days=1)
  19. return data

2.获取文件目录,新建,删除文件及文件夹

  1. import os
  2. # 获取文件所在目录
  3. parent_dir = os.path.abspath(os.path.dirname(__file__))
  4. # 拼接文件目录
  5. file_dir = os.path.join(parent_dir, "file_name.json")
  6. # 根据文件路径删除文件
  7. finally:
  8. # 如果存在此路径,则进行删除,locals()是一个字典,存储本模块中的变量等
  9. file_dir = locals().get("file_dir")
  10. if os.path.exists(file_dir):
  11. os.remove(file_dir)
  12. parent_path = os.path.abspath(os.path.dirname(__file__))
  13. # 拼接temp文件夹路径
  14. folder_path = os.path.join(parent_path, "temp")
  15. # 创建文件目录
  16. if not os.path.exists(folder_path):
  17. os.mkdir(folder_path)
  18. file_path = os.path.join(folder_path, "__init__.py")
  19. # 写入空文件
  20. with open(file_path, "w"):
  21. pass

3.数据手动分页

  1. # 当前页
  2. page_num = data.get("page_num", 1)
  3. # 当前页数据条数
  4. page_size = data.get("page_size", 10)
  5. # 数据分页
  6. start = (page_num - 1) * page_size
  7. end = start + page_size
  8. # 数据总条数
  9. total = len(total_data)
  10. split_data = total_data[start:end]

4.pandas存储为excel文件

  1. import numpy as np
  2. import pandas as pd
  3. form_headers = ["表头1", "表头2"]
  4. # 根据表头设置的每行的数据
  5. table_data = [["数据1", "数据2"], ["数据1", "数据2"], ["数据1", "数据2"]]
  6. table_data = np.array(table_data_res)
  7. pf = pd.DataFrame(data=table_data, columns=form_headers)
  8. # DataFrame有前置索引列,关闭即可
  9. pf.to_excel(f"{file_dir}", index=False)

5.[{}, {}, {}, …]根据某个字段去重

  1. def deduplicate_data(data,key):
  2. ret = [] # 用于存储去重后的list
  3. values = [] # 用于存储当前已有的值
  4. for d in data:
  5. if d[key] not in values:
  6. ret.append(d)
  7. values.append(d[key])
  8. return ret
  9. s = [{"a":1, "b": "c"}, {"a":1, "b": "e"}, {"a":6, "b": "w"}]
  10. r = deduplicate_data(s, "a")
  11. => [{'a': 1, 'b': 'c'}, {'a': 6, 'b': 'w'}]

6.时间对象与时间字符串互相转换(待定。。。)

  1. today = datetime.datetime.today()
  2. today_str = datetime.datetime.strftime(today, "%Y-%m-%d")
  3. days_ago = today - datetime.timedelta(days=3)
  4. days_ago_str = datetime.datetime.strftime(days_ago, "%Y-%m-%d")
  5. # 将时间戳转化为字符串时间
  6. datetime.strftime(datetime.fromtimestamp(int(str(date[0])[:-3])), '%Y-%m-%d')