12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- from functions.odps_function import OdpsFunction
- from functions.feishu import Feishu
- from config import column_map, alg_map, yesterday_columns
- from functions.get_yesterday_data import find_yesterday_data
- def read_odps_data():
- """
- 从 odps 读取数据
- :return:
- """
- o = OdpsFunction()
- sql = """select * from loghubods.okr_kd where dt = '20240225';"""
- data = o.select(sql)
- return data
- def process_data(data_obj):
- """
- 把对象数据转化为 list
- :param data_obj:
- :return:
- """
- keys = ["c{}".format(i) for i in range(1, 350)]
- temp = {}
- for key in keys:
- try:
- temp[key] = int(data_obj[key])
- except:
- temp[key] = data_obj[key]
- # 获取昨天的数据并且更新到 temp 中
- for column in yesterday_columns:
- if temp[column_map[column]] != "-" or temp[column_map[column]] != "--":
- yes_d = find_yesterday_data(column)
- if type(yes_d) != str:
- temp[column_map[column]] = yes_d
- result = []
- for key in temp:
- if alg_map.get(key):
- obj = {
- "type": "formula",
- "text": alg_map[key],
- "number_setting": {"format": "percentage", "decimal_count": 2},
- }
- result.append(obj)
- else:
- result.append(temp[key])
- return result
- def insert_into_feishu(data_list):
- """
- 插入飞书表
- :param data_list:
- :return:
- """
- F = Feishu("C1Qrsa4HWh6bzEtv7aocrFlAnad")
- F.insert_value(sheet_id="Zi7oYW", values=[data_list[:100]], ranges="A5:CV5")
- F.insert_value(sheet_id="Zi7oYW", values=[data_list[100:200]], ranges="CW5:GR5")
- F.insert_value(sheet_id="Zi7oYW", values=[data_list[200:300]], ranges="GS5:KN5")
- F.insert_value(sheet_id="Zi7oYW", values=[data_list[300:]], ranges="KO5:MK5")
- if __name__ == "__main__":
- data = read_odps_data()
- result_list = process_data(data)
- insert_into_feishu(result_list)
|