# -*- coding: utf-8 -*- import pandas as pd import datetime from config import Config from api import API import pymysql # 使用 pymysql 替代 mysql.connector from back_ground_module import CommonModule start_time = datetime.datetime.now() api_instance = API() common_module = CommonModule() class importSYXCXData: """私域小程序数据支撑""" def __init__(self): self.field_mapping = {} self.fields() def main(self): task_start_time =datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") payload = {"api_key": Config.SaaS_Tasks_APP_ID, "entry_id": Config.SYXCX_form_ID, } abnormal_service = api_instance.entry_data_list(payload) abnormal_list = abnormal_service.get("data") # api请求格式,将数据封装在data字典里 for i in range(0,len(abnormal_list)): # 删除历史数据 try: delete_data = {"api_key": Config.SaaS_Tasks_APP_ID, "entry_id": Config.SYXCX_form_ID, "data_id": abnormal_list[i]['_id']} api_instance.entry_data_delete(delete_data) except: pass data_SY = common_module.get_syxcx_details() # 生成包含所有行转换后的字典列表 data_SY = [self.row_to_dict(row, self.field_mapping) for index, row in data_SY.iterrows()] data_SY = {'api_key': Config.SaaS_Tasks_APP_ID, 'entry_id': Config.SYXCX_form_ID, "data_list": data_SY} result = api_instance.entry_data_batch_create(data_SY) result_str = str(result) # print(result_str[:500]) # 保存到Excel文件 # output_path = r'D:\Idea Project\F6+宜搭+其它(1)\new\文件输出\ngv明细1.xlsx' # data_NGV_j.to_excel(output_path, index=False) end_time = datetime.datetime.now() time_diff = end_time - start_time # 打印天数、秒数和微秒数 print(f"执行时间: {time_diff.days} 天, {time_diff.seconds} 秒, {time_diff.microseconds} 微秒") common_module.send_task_status(task_start_time, "私域小程序数据支撑") @staticmethod def row_to_dict(row, field_mapping): """将一行数据转换为指定格式的字典""" result = {} for col_name, widget_id in field_mapping.items(): if col_name in row: value = row[col_name] clean_value = None if pd.isna(value) else value result[widget_id] = {"value": clean_value} return result def fields(self): self.field_mapping = { "公司ID": "_widget_1742795002375", "公众号名称": "_widget_1742795002376", "小程序模板类型": "_widget_1742795002377", "是否开通微信商城": "_widget_1742795002378", "上架商品数": "_widget_1742795002379", "上架套餐卡数": "_widget_1742795002380", "上架实体商品数": "_widget_1742795002381", "上架项目数": "_widget_1742795002382", "上架套餐数": "_widget_1742795002383", "微信公众号粉丝数": "_widget_1742795002384", "微信公众号绑定手机粉丝数": "_widget_1742795002385", "是否开通微信小程序": "_widget_1742795002386", "微信小程序绑定用户数": "_widget_1742795002387", "微信小程序绑定手机用户量": "_widget_1742795002388", "微信订单数": "_widget_1742795002389", "微信支付订单量": "_widget_1742795002390", "线下订单数": "_widget_1742795002391" } if __name__ == '__main__': start = importSYXCXData() start.main()