履约表日期调整

This commit is contained in:
z66
2025-12-02 17:34:47 +08:00
parent 6c316e6c61
commit 502b3d4e4e
12 changed files with 232 additions and 56 deletions
+1 -1
View File
@@ -137,7 +137,7 @@ class GDMatchPhoneNumber:
if count > 150:
params.update({"key": "f61b09d406ac49f8a034bf585e60c442"})
res = requests.get(url=url, params=params)
# print(res.json())
# print(res.json.json())
return res.json().get("pois", [])
# 初始搜索关键词
+1 -1
View File
@@ -218,7 +218,7 @@ class CommonModule:
def get_jcb_details(self, ):
"""
从固定的数据库中获取前几天的NGV明细
从固定的数据库中获取前几天的借车宝
参数 `days_back` 表示相对于今天的天数偏移量,默认为1(即前一天)。
返回包含NGV明细的pandas DataFrame。
"""
+1 -1
View File
@@ -122,7 +122,7 @@ class APIClient:
def __init__(self):
self.headers = {
'Authorization': Config.JIANDAOYUN_API_TOKEN,
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
def request(self, url, payload, method='POST'):
+6 -22
View File
@@ -100,28 +100,12 @@ class ImportPerformanceData:
time_columns = ['saas开户时间', '服务期起始时间', '下单支付成功时间', '操作时间',
"下单支付成功日期", "服务期结束时间"]
for col in tqdm(time_columns):
if col in tqdm(new_df.columns): # 安全检查列是否存在
try:
# 1. 转换为datetime(自动推断格式,处理无效值为NaT)
new_df[col] = pd.to_datetime(new_df[col], errors='coerce', utc=False)
# 2. 时区转换(仅对有效日期操作)
mask = new_df[col].notna() # 只处理非空值
if mask.any(): # 如果有有效日期才转换
# 本地化为北京时间,然后转换为UTC
new_df.loc[mask, col + '_utc'] = (
new_df.loc[mask, col]
.dt.tz_localize('Asia/Shanghai', ambiguous='infer', nonexistent='shift_forward')
.dt.tz_convert('UTC')
.dt.strftime('%Y-%m-%dT%H:%M:%SZ')
)
else:
new_df[col + '_utc'] = pd.NA # 全部为空时保持一致性
except Exception as e:
print(f"处理列 {col} 时出错: {str(e)}")
new_df[col + '_utc'] = pd.NA # 出错时设为NA
new_df[time_columns] = new_df[time_columns].apply(
lambda col: pd.to_datetime(col, errors='coerce')
.dt.tz_localize('Asia/Shanghai') # 假设原时间是北京时间
.dt.tz_convert('UTC') # 转为 UTC
.dt.strftime('%Y-%m-%d %H:%M:%S') # 格式化为字符串(无时区标记)
)
return new_df
+2
View File
@@ -13,3 +13,5 @@
2025-11-18 09:16:52,668 - update_BI_CRM_info.py - error_task_logger - ERROR - 任务简道云海外项目CRM客户档案迁移BI执行失败。
2025-11-18 09:17:05,585 - update_BI_CRM_info.py - error_task_logger - ERROR - 导入数据时发生错误: 1054 (42S22): Unknown column 'nan' in 'field list'
2025-11-18 09:17:05,912 - update_BI_CRM_info.py - error_task_logger - ERROR - 任务简道云海外项目CRM客户档案迁移BI执行失败。
2025-11-27 09:08:41,105 - common_module.py - error_task_logger - ERROR - 获取借车宝NGV明细时出错: Length mismatch: Expected axis has 0 elements, new values have 16 elements
2025-11-27 09:08:41,278 - JCB_efficient_car_pickup.py - error_task_logger - ERROR - 接车宝日常派发执行出错:获取接车宝数据失败,返回None
+7 -7
View File
@@ -39,7 +39,7 @@ class update_ID_form:
def __init__(self):
self.headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN', # 曹伟应用api测试 app_key
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
self.url = "https://api.jiandaoyun.com/api/v5/corp/department/user/list"
self.payload1 = {
@@ -82,7 +82,7 @@ class update_ID_form:
headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN', # 曹伟应用api测试 app_key
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
"""
@@ -130,7 +130,7 @@ class update_ID_form:
headers = {
'Authorization': "Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN", # 曹伟应用api测试 app_key
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
payload = json.dumps({
@@ -197,7 +197,7 @@ class update_ID_form:
headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN', # 曹伟应用api测试 app_key
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
all_data_batches = [] # 用于存储每次请求返回的数据批次
last_data_id = None
@@ -308,7 +308,7 @@ class update_ID_form:
headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN', # 曹伟应用api测试 appKey
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
"""
@@ -385,7 +385,7 @@ class update_ID_form:
headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN', # 曹伟应用api测试 appKey
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
# 获取data_list长度
@@ -460,7 +460,7 @@ class update_ID_form:
headers = {
'Authorization': 'Bearer qygHulymo1fekJk4CIZyNKjyQAzG8CFN',
'Content-Type': 'application/json'
'Content-Type': 'application/json.json'
}
response = requests.post(url, headers=headers)