saas1.6
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# -*- 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()
|
||||
Reference in New Issue
Block a user