Compare commits

...

2 Commits

Author SHA1 Message Date
panda 69390fd080 异常回访、续约回访增加默认值
新签、续约回访增加权限唯一值不存在报错
2026-03-06 17:50:17 +08:00
panda be3af8cf51 增加注释 2026-02-28 10:58:18 +08:00
15 changed files with 517 additions and 61990 deletions
+2 -1
View File
@@ -344,7 +344,8 @@ class API:
"is_start_trigger": data.get('is_start_trigger', True),
}
)
print(payload)
# print(payload)
data_get = None
retries = 0
+58 -26
View File
@@ -19,6 +19,7 @@ error_task_logger = configure_error_task_logger()
output_dir = "output" # 设置输出目录
os.makedirs(output_dir, exist_ok=True)
class NewExceptionTask:
"""
SaaS异常回访
@@ -175,7 +176,9 @@ class NewExceptionTask:
# print("NGV获取后的类型:", type(self.NGV_data_list))
# 获取异常服务待办(添加过滤进行中的订单)
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "68340de79f116c0b66b6b0cc","filter":{"rel":"and","cond":[{ "field": "flowState", "type":"flowstate", "method":"eq","value":[0] }]}}
payload = {"api_key": "675b900991ad2491c69389ca", "entry_id": "68340de79f116c0b66b6b0cc",
"filter": {"rel": "and",
"cond": [{"field": "flowState", "type": "flowstate", "method": "eq", "value": [0]}]}}
self.exception_service_todo = api_instance.entry_data_list(payload).get("data", [])
# print(self.exception_service_todo)
@@ -225,7 +228,7 @@ class NewExceptionTask:
task_start_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
all_data =[]
all_data = []
try:
self.load_all_data()
@@ -240,6 +243,7 @@ class NewExceptionTask:
return
data_yichang = self.data_yichang_S.copy()
# data_yichang.to_csv(os.path.join(output_dir,"data_yichang.csv"), index=False)
def replace_values(series):
@@ -248,7 +252,7 @@ class NewExceptionTask:
# 对整个DataFrame的所有列应用替换函数
data_yichang = data_yichang.apply(replace_values)
error_data= []
error_data = []
for index_num, row in data_yichang.iterrows(): # 对过滤后的每一条进行派发
try:
# 每次循环前清空省市区变量
@@ -257,7 +261,7 @@ class NewExceptionTask:
area_name = None
is_pass = False
for exception_service in self.exception_service_todo :
for exception_service in self.exception_service_todo:
# 通过查询筛选进行中的逻辑
if exception_service['_widget_1748241895842'] == row['org_code']:
is_pass = True
@@ -297,35 +301,36 @@ class NewExceptionTask:
NGV_data_id = None
reason = None
create_exception =None
create_date = None
create_exception = None
create_date = None
# 优先从 data_yichang_S 获取省市区信息
province_name = row.get('province_name')
city_name = row.get('city_name')
area_name = row.get('area_name') if 'area_name' in row else row.get('district_name')
# 检查省市区是否完整(省市区是一体的,任意一个缺失就需要从NGV获取)
use_ngv_location = False
if (not province_name or province_name in ['', 'None', 'NA'] or
not city_name or city_name in ['', 'None', 'NA'] or
not area_name or area_name in ['', 'None', 'NA']):
not city_name or city_name in ['', 'None', 'NA'] or
not area_name or area_name in ['', 'None', 'NA']):
use_ngv_location = True
logger.info(f"门店 {row['org_code']} 的省市区信息不完整,将从NGV_data_list获取")
stop_date = None
# 获取关联数据
for NGV_Data in self.NGV_data_list:
# NGV_Data = NGV_Data.get("data")
if row["org_code"] == NGV_Data.get("_widget_1734062123071"): # 门店编码
NGV_data_id = NGV_Data.get("_id")
# 如果需要从 NGV_data_list 获取省市区信息
if use_ngv_location:
province_name = NGV_Data.get("_widget_1734062123090")
city_name = NGV_Data.get("_widget_1734062123092")
area_name = NGV_Data.get("_widget_1734062123094")
logger.info(f"【从NGV获取省市区】门店 {row['org_code']}: {province_name}, {city_name}, {area_name}")
logger.info(
f"【从NGV获取省市区】门店 {row['org_code']}: {province_name}, {city_name}, {area_name}")
# 门店原因
reason = NGV_Data.get("_widget_1758617393828")
logger.info(f"获取关联数据成功:{NGV_data_id}, {province_name}, {city_name}, {area_name}")
@@ -333,8 +338,40 @@ class NewExceptionTask:
create_exception = NGV_Data.get("_widget_1758769279995")
# 获取上线日期(文本)# 202512.3改为开户日
create_date = NGV_Data.get("_widget_1734062123081")
# 获取暂停派发日期
stop_date = NGV_Data.get("_widget_1772610343227", None)
break # 找到匹配的数据后退出循环
# 定义可能的日期格式(灵活应对不同格式)
date_formats = [
"%Y-%m-%d %H:%M:%S", # 含时间
"%Y-%m-%d", # 仅日期
"%Y/%m/%d",
"%Y/%m/%d %H:%M:%S"
]
if stop_date:
# 解析暂停派发日期
parsed_stop_date = None
for fmt in date_formats:
try:
parsed_stop_date = datetime.datetime.strptime(stop_date.strip(), fmt)
logger.debug(f"使用格式 {fmt} 成功解析暂停派发日期: {parsed_stop_date}")
break
except ValueError:
continue
if parsed_stop_date:
# 获取当前UTC时间
current_utc_time = datetime.datetime.utcnow()
logger.debug(f"当前UTC时间: {current_utc_time}")
logger.debug(f"暂停派发日期: {parsed_stop_date}")
# 比较时间
if current_utc_time < parsed_stop_date:
logger.info(f"当前UTC时间低于暂停派发日期,跳过派发")
continue
# 判断门店原因
# if reason in ["门店倒闭", "门店转让", "加盟其他连锁","切换竞品","虚拟门店","重新开户","已退款","二套系统"]:
# continue
@@ -347,14 +384,6 @@ class NewExceptionTask:
logger.warning("上线日期为空,跳过该记录")
continue
# 定义可能的日期格式(灵活应对不同格式)
date_formats = [
"%Y-%m-%d %H:%M:%S", # 含时间
"%Y-%m-%d", # 仅日期
"%Y/%m/%d",
"%Y/%m/%d %H:%M:%S"
]
parsed_date = None
for fmt in date_formats:
try:
@@ -380,15 +409,14 @@ class NewExceptionTask:
logger.info(f"上线日期 {parsed_date} 在30天内,跳过处理")
continue
if not NGV_data_id:
logger.warning(f"未找到关联数据,请检查门店编码: {row['org_code']}")
# 根据省市区派发给异常回访客服
# 检查省市区是否都有值,如果有任何一个为空,则客服为空
if (not province_name or province_name in ['', 'None', 'NA'] or
not city_name or city_name in ['', 'None', 'NA'] or
not area_name or area_name in ['', 'None', 'NA']):
not city_name or city_name in ['', 'None', 'NA'] or
not area_name or area_name in ['', 'None', 'NA']):
customer_service = None
logger.warning(f"【省市区信息缺失】门店 {row['org_code']} 省市区信息不完整,异常回访客服设置为空")
logger.warning(f"省: {province_name}, 市: {city_name}, 区: {area_name}")
@@ -457,6 +485,8 @@ class NewExceptionTask:
"_widget_1748512176655": {"value": "未处理"}, # 跟进状态
"_widget_1772761760440":{"value": "客服跟进节点"}, # 当前跟进节点
})
routine_follow_up_payload = {
@@ -478,7 +508,9 @@ class NewExceptionTask:
if error_data:
error_df = pd.DataFrame(error_data)
error_df.to_csv(os.path.join(output_dir, "异常派发错误数据.csv"))
common_module.send_task_error(task_start_time = task_start_time,task_name= "异常服务待办派发",error_message="详情见失败文件", df = error_df)
common_module.send_task_error(task_start_time=task_start_time, task_name="异常服务待办派发",
error_message="失败文件中省市区匹配不到,需要通过门店编码在客户资料表中查询正确的省市区,并更新到省市区人员关系表中",
df=error_df)
# ndf = pd.DataFrame(all_data)
# ndf.to_csv(os.path.join(output_dir, "异常派发.csv"))
common_module.send_task_status(task_start_time, "异常服务待办派发")
@@ -23,6 +23,7 @@ api_instance = API()
class ProvinceCityPersonRelationToBI:
'''省市区人员关系表转BI'''
def __init__(self):
self.pvc_data = None
self.field_mapping = {
+3
View File
@@ -351,6 +351,9 @@ class RenewalToDo:
data_NGV['120天是否跟进'] = "主动"
data_NGV['60天是否跟进']= "主动"
data_NGV['30天是否跟进']= "主动"
# 新增当前所处节点默认值
data_NGV['当前所处节点'] = "120天节点"
# 格式化为字符串(去掉时区)
for col in ['过期日', '120天自动流转时间', '60天自动流转时间', '30天自动流转时间', '0天自动流转时间']:
data_NGV[col] = data_NGV[col].dt.strftime('%Y-%m-%d %H:%M:%S')
+18 -13
View File
@@ -622,7 +622,10 @@ class NewServicesRevisit:
continue
if not Billing:
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key}")
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key},跳过该条派发")
error_msg = f"门店编码:{row['org_code']},权限唯一值:{NGV_store_level_key}"
common_module.send_task_error(task_start_time, "新签客户回访-权限表无匹配", error_msg)
continue
if row["active_status_fmt"] == "活跃": # 开单 是否使用
payload_dict.update({"_widget_1735004315765": {"value": ""}})
@@ -635,7 +638,7 @@ class NewServicesRevisit:
payload_dict.update({"_widget_1735106258036": {"value": ""}})
except Exception as e:
error_task_logger.error(f"会员卡拥有识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡拥有识别", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-会员卡拥有识别", str(e))
try:
if row["card_bill_day_count_last_30_day"] != "0": # 会员卡 是否使用
payload_dict.update({"_widget_1735106258038": {"value": ""}})
@@ -643,7 +646,7 @@ class NewServicesRevisit:
payload_dict.update({"_widget_1735106258038": {"value": ""}})
except Exception as e:
error_task_logger.error(f"会员卡使用识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡使用识别", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-会员卡使用识别", str(e))
# print(self.service_remind.get("_widget_1735112637045"))
payload_dict["_widget_1735106258018"] = {"value": ""}
@@ -675,11 +678,13 @@ class NewServicesRevisit:
# 近30天业务单量=0 则其它所有模块均不推荐
try:
for feature_module, feature_value in feature_dict.items(): # 模块
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value]["value"] == '':
if feature_value not in payload_dict:
continue
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value].get("value") == '':
payload_dict.update({f"{feature_value}": {"value": "×"}})
except Exception as e:
error_task_logger.error(f"不开单识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-不开单识别", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-不开单识别", str(e))
# 保单识别:从系统中抽取目标门店,针对门店抽取修改是否推荐
try:
@@ -687,7 +692,7 @@ class NewServicesRevisit:
payload_dict.update({'_widget_1735004315746': {"value": ""}})
except Exception as e:
error_task_logger.error(f"保单识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-保单识别", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-保单识别", str(e))
# 私域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
try:
for item in self.private_domain:
@@ -700,7 +705,7 @@ class NewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"小程序识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-小程序识别", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-小程序识别", str(e))
try:
high_version = ['皇冠版', '至尊版', '尊享版', '旗舰版']
if row["saas_edition_fmt"] in high_version:
@@ -709,7 +714,7 @@ class NewServicesRevisit:
payload_dict.update({'_widget_1735106258141': {"value": ""}}) # SYXCX:是否拥有
except Exception as e:
error_task_logger.error(f"私域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-私域小程序", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-私域小程序", str(e))
# 公域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
try:
@@ -723,7 +728,7 @@ class NewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-公域小程序", str(e))
try:
if row["id_own_org"] in self.public_domain_list:
@@ -732,7 +737,7 @@ class NewServicesRevisit:
payload_dict.update({'_widget_1735106258112': {"value": ""}}) # GYXCX:是否拥有
except Exception as e:
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-公域小程序", str(e))
# 异业合作:根据是否存在判断是否拥有,过滤条件 商品名称包含异业两个字
try:
@@ -742,7 +747,7 @@ class NewServicesRevisit:
payload_dict.update({'_widget_1735107355618': {"value": ""}}) # YYHZ:是否拥有
except Exception as e:
error_task_logger.error(f"异业合作:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-异业合作", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-异业合作", str(e))
# 短信:根据是否启动短信功能判断是否拥有,根据
try:
@@ -756,7 +761,7 @@ class NewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-短信是否使用", str(e))
try:
for item in self.groupnotification:
@@ -769,7 +774,7 @@ class NewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
common_module.send_task_error(task_start_time, "新签客户回访-短信是否使用", str(e))
NGV_data_id = None
# 获取关联数据
@@ -736,7 +736,10 @@ class RenewServicesRevisit:
continue
if not Billing:
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key}")
logger.warning(f"权限表请求失败或者权限表无对应关系,权限唯一值是:{NGV_store_level_key},跳过该条派发")
error_msg = f"门店编码:{row['org_code']},权限唯一值:{NGV_store_level_key}"
common_module.send_task_error(task_start_time, "续约客户回访-权限表无匹配", error_msg)
continue # 无权限匹配时 payload_dict 缺少 _widget_1734073342350 等字段,后续会 KeyError,直接跳过
if row["active_status_fmt"] == "活跃": # 开单 是否使用
payload_dict.update({"_widget_1735004315765": {"value": ""}})
@@ -750,7 +753,7 @@ class RenewServicesRevisit:
payload_dict.update({"_widget_1735106258036": {"value": ""}})
except Exception as e:
error_task_logger.error(f"会员卡拥有识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡拥有识别", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-会员卡拥有识别", str(e))
try:
if row["card_bill_day_count_last_30_day"] != "0": # 会员卡 是否使用
@@ -759,7 +762,7 @@ class RenewServicesRevisit:
payload_dict.update({"_widget_1735106258038": {"value": ""}})
except Exception as e:
error_task_logger.error(f"会员卡使用识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-会员卡使用识别", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-会员卡使用识别", str(e))
# print(self.service_remind.get("_widget_1735112637045"))
payload_dict["_widget_1735106258018"] = {"value": ""}
@@ -792,11 +795,13 @@ class RenewServicesRevisit:
# 近30天业务单量=0 则其它所有模块均不推荐
try:
for feature_module, feature_value in feature_dict.items(): # 模块
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value]["value"] == '':
if feature_value not in payload_dict:
continue # 权限未匹配时该 key 不存在,避免 KeyError
if row["bill_count_last_30_day"] == '0' and payload_dict[feature_value].get("value") == '':
payload_dict.update({f"{feature_value}": {"value": "×"}})
except Exception as e:
error_task_logger.error(f"不开单识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-不开单识别", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-不开单识别", str(e))
# 保单识别:从系统中抽取目标门店,针对门店抽取修改是否推荐
try:
@@ -804,7 +809,7 @@ class RenewServicesRevisit:
payload_dict.update({'_widget_1735004315746': {"value": ""}})
except Exception as e:
error_task_logger.error(f"保单识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-保单识别", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-保单识别", str(e))
# 私域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
try:
@@ -818,7 +823,7 @@ class RenewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"小程序识别:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-小程序识别", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-小程序识别", str(e))
try:
high_version = ['皇冠版', '至尊版', '尊享版', '旗舰版']
@@ -828,7 +833,7 @@ class RenewServicesRevisit:
payload_dict.update({'_widget_1735106258141': {"value": ""}}) # SYXCX:是否拥有
except Exception as e:
error_task_logger.error(f"私域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-私域小程序", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-私域小程序", str(e))
# 公域小程序:根据是否开通微信小程序判断是否使用,旗舰版及以上算拥有
try:
@@ -842,7 +847,7 @@ class RenewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-公域小程序", str(e))
try:
if row["id_own_org"] in self.public_domain_list:
@@ -851,7 +856,7 @@ class RenewServicesRevisit:
payload_dict.update({'_widget_1735106258112': {"value": ""}}) # GYXCX:是否拥有
except Exception as e:
error_task_logger.error(f"公域小程序:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-公域小程序", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-公域小程序", str(e))
# 异业合作:根据是否存在判断是否拥有,过滤条件 商品名称包含异业两个字
try:
@@ -861,7 +866,7 @@ class RenewServicesRevisit:
payload_dict.update({'_widget_1735107355618': {"value": ""}}) # YYHZ:是否拥有
except Exception as e:
error_task_logger.error(f"异业合作:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-异业合作", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-异业合作", str(e))
# 短信:根据是否启动短信功能判断是否拥有,根据
try:
@@ -875,7 +880,7 @@ class RenewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-短信是否使用", str(e))
try:
for item in self.groupnotification:
@@ -888,7 +893,7 @@ class RenewServicesRevisit:
break
except Exception as e:
error_task_logger.error(f"短信是否使用:Error finding customer service: {e}")
common_module.send_task_error(task_start_time, "手动添加日常回访-短信是否使用", str(e))
common_module.send_task_error(task_start_time, "续约客户回访-短信是否使用", str(e))
NGV_data_id = None
# 获取关联数据
Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

-61166
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -421,8 +421,8 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-02-04T06:48:00.613387900Z",
"start_time": "2026-02-04T06:47:59.999330900Z"
"end_time": "2026-03-05T06:03:19.996979900Z",
"start_time": "2026-03-05T06:03:19.335172700Z"
}
},
"cell_type": "code",
@@ -454,7 +454,7 @@
"\n",
" # 使用DELETE删除ID大于等于127821的数据\n",
" # cursor.execute(f\"DELETE FROM {table_name} WHERE id >= {min_id_to_delete}\")\n",
" cursor.execute(f\"DELETE FROM GP_monthly_renewal_rate_new WHERE 月分区(仅用于存储每月最后一天截至数据) = '202601';\")\n",
" cursor.execute(f\"DELETE FROM GP_annual_renewal_rate_new WHERE 月分区(仅用于存储每月最后一天截至数据) = '202602';\")\n",
"\n",
" connection.commit()\n",
"\n",
@@ -478,7 +478,7 @@
]
}
],
"execution_count": 4
"execution_count": 2
},
{
"metadata": {},
@@ -22,8 +22,8 @@ def save_data_yichang_to_csv():
print("开始获取异常明细数据...")
# 获取前一天的异常数据
data_yichang_S = common_module.get_yichang_details(days_back=1)
# data_yichang_S = common_module.get_ngv_details(days_back=1) # ngv
# data_yichang_S = common_module.get_yichang_details(days_back=1)
data_yichang_S = common_module.get_ngv_details(days_back=1) # ngv
if data_yichang_S is None or data_yichang_S.empty:
@@ -35,7 +35,7 @@ def save_data_yichang_to_csv():
# 生成文件名(包含日期)
current_date = datetime.datetime.now().strftime("%Y%m%d")
filename = f"data_yichang_{current_date}.csv"
filename = f"data_NGV_{current_date}.csv"
filepath = os.path.join(output_dir, filename)
# 保存到CSV
File diff suppressed because one or more lines are too long
+26 -764
View File
@@ -12,8 +12,8 @@
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-07-17T08:03:51.919981Z",
"start_time": "2025-07-17T08:03:39.331174Z"
"end_time": "2026-02-25T05:45:52.998049100Z",
"start_time": "2026-02-25T05:45:49.628616100Z"
}
},
"source": [
@@ -21,7 +21,7 @@
"from api import API\n",
"\n",
"api_instance = API()\n",
"df = pd.read_excel(r\"C:\\Users\\Administrator.DESKTOP-7IC2USJ\\Downloads\\客户资料_20250801111301.xlsx\",sheet_name=\"id为空\")\n",
"df = pd.read_excel(r\"C:\\Users\\hp_z66\\Downloads\\客户资料_20260225113103.xlsx\",sheet_name=\"Sheet7\")\n",
"for index, row in df.iterrows():\n",
" data_id = row[\"data_id\"]\n",
" payload = {\n",
@@ -33,37 +33,25 @@
],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n"
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mKeyboardInterrupt\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[1]\u001B[39m\u001B[32m, line 5\u001B[39m\n\u001B[32m 2\u001B[39m \u001B[38;5;28;01mfrom\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34;01mapi\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;28;01mimport\u001B[39;00m API\n\u001B[32m 4\u001B[39m api_instance = API()\n\u001B[32m----> \u001B[39m\u001B[32m5\u001B[39m df = \u001B[43mpd\u001B[49m\u001B[43m.\u001B[49m\u001B[43mread_excel\u001B[49m\u001B[43m(\u001B[49m\u001B[33;43mr\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mC:\u001B[39;49m\u001B[33;43m\\\u001B[39;49m\u001B[33;43mUsers\u001B[39;49m\u001B[33;43m\\\u001B[39;49m\u001B[33;43mhp_z66\u001B[39;49m\u001B[33;43m\\\u001B[39;49m\u001B[33;43mDownloads\u001B[39;49m\u001B[33;43m\\\u001B[39;49m\u001B[33;43m客户资料_20260225113103.xlsx\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43msheet_name\u001B[49m\u001B[43m=\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mSheet7\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[32m 6\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m index, row \u001B[38;5;129;01min\u001B[39;00m df.iterrows():\n\u001B[32m 7\u001B[39m data_id = row[\u001B[33m\"\u001B[39m\u001B[33mdata_id\u001B[39m\u001B[33m\"\u001B[39m]\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\pandas\\io\\excel\\_base.py:495\u001B[39m, in \u001B[36mread_excel\u001B[39m\u001B[34m(io, sheet_name, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, date_format, thousands, decimal, comment, skipfooter, storage_options, dtype_backend, engine_kwargs)\u001B[39m\n\u001B[32m 493\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(io, ExcelFile):\n\u001B[32m 494\u001B[39m should_close = \u001B[38;5;28;01mTrue\u001B[39;00m\n\u001B[32m--> \u001B[39m\u001B[32m495\u001B[39m io = \u001B[43mExcelFile\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 496\u001B[39m \u001B[43m \u001B[49m\u001B[43mio\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 497\u001B[39m \u001B[43m \u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m=\u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 498\u001B[39m \u001B[43m \u001B[49m\u001B[43mengine\u001B[49m\u001B[43m=\u001B[49m\u001B[43mengine\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 499\u001B[39m \u001B[43m \u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m=\u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 500\u001B[39m \u001B[43m \u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 501\u001B[39m \u001B[38;5;28;01melif\u001B[39;00m engine \u001B[38;5;129;01mand\u001B[39;00m engine != io.engine:\n\u001B[32m 502\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\n\u001B[32m 503\u001B[39m \u001B[33m\"\u001B[39m\u001B[33mEngine should not be specified when passing \u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 504\u001B[39m \u001B[33m\"\u001B[39m\u001B[33man ExcelFile - ExcelFile already has the engine set\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 505\u001B[39m )\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\pandas\\io\\excel\\_base.py:1567\u001B[39m, in \u001B[36mExcelFile.__init__\u001B[39m\u001B[34m(self, path_or_buffer, engine, storage_options, engine_kwargs)\u001B[39m\n\u001B[32m 1564\u001B[39m \u001B[38;5;28mself\u001B[39m.engine = engine\n\u001B[32m 1565\u001B[39m \u001B[38;5;28mself\u001B[39m.storage_options = storage_options\n\u001B[32m-> \u001B[39m\u001B[32m1567\u001B[39m \u001B[38;5;28mself\u001B[39m._reader = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_engines\u001B[49m\u001B[43m[\u001B[49m\u001B[43mengine\u001B[49m\u001B[43m]\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 1568\u001B[39m \u001B[43m \u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43m_io\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 1569\u001B[39m \u001B[43m \u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m=\u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 1570\u001B[39m \u001B[43m \u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m=\u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 1571\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\pandas\\io\\excel\\_openpyxl.py:553\u001B[39m, in \u001B[36mOpenpyxlReader.__init__\u001B[39m\u001B[34m(self, filepath_or_buffer, storage_options, engine_kwargs)\u001B[39m\n\u001B[32m 541\u001B[39m \u001B[38;5;250m\u001B[39m\u001B[33;03m\"\"\"\u001B[39;00m\n\u001B[32m 542\u001B[39m \u001B[33;03mReader using openpyxl engine.\u001B[39;00m\n\u001B[32m 543\u001B[39m \n\u001B[32m (...)\u001B[39m\u001B[32m 550\u001B[39m \u001B[33;03m Arbitrary keyword arguments passed to excel engine.\u001B[39;00m\n\u001B[32m 551\u001B[39m \u001B[33;03m\"\"\"\u001B[39;00m\n\u001B[32m 552\u001B[39m import_optional_dependency(\u001B[33m\"\u001B[39m\u001B[33mopenpyxl\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m--> \u001B[39m\u001B[32m553\u001B[39m \u001B[38;5;28;43msuper\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[43m.\u001B[49m\u001B[34;43m__init__\u001B[39;49m\u001B[43m(\u001B[49m\n\u001B[32m 554\u001B[39m \u001B[43m \u001B[49m\u001B[43mfilepath_or_buffer\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 555\u001B[39m \u001B[43m \u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m=\u001B[49m\u001B[43mstorage_options\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 556\u001B[39m \u001B[43m \u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m=\u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 557\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\pandas\\io\\excel\\_base.py:573\u001B[39m, in \u001B[36mBaseExcelReader.__init__\u001B[39m\u001B[34m(self, filepath_or_buffer, storage_options, engine_kwargs)\u001B[39m\n\u001B[32m 571\u001B[39m \u001B[38;5;28mself\u001B[39m.handles.handle.seek(\u001B[32m0\u001B[39m)\n\u001B[32m 572\u001B[39m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[32m--> \u001B[39m\u001B[32m573\u001B[39m \u001B[38;5;28mself\u001B[39m.book = \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mload_workbook\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mhandles\u001B[49m\u001B[43m.\u001B[49m\u001B[43mhandle\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 574\u001B[39m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mException\u001B[39;00m:\n\u001B[32m 575\u001B[39m \u001B[38;5;28mself\u001B[39m.close()\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\pandas\\io\\excel\\_openpyxl.py:572\u001B[39m, in \u001B[36mOpenpyxlReader.load_workbook\u001B[39m\u001B[34m(self, filepath_or_buffer, engine_kwargs)\u001B[39m\n\u001B[32m 568\u001B[39m \u001B[38;5;28;01mfrom\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34;01mopenpyxl\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;28;01mimport\u001B[39;00m load_workbook\n\u001B[32m 570\u001B[39m default_kwargs = {\u001B[33m\"\u001B[39m\u001B[33mread_only\u001B[39m\u001B[33m\"\u001B[39m: \u001B[38;5;28;01mTrue\u001B[39;00m, \u001B[33m\"\u001B[39m\u001B[33mdata_only\u001B[39m\u001B[33m\"\u001B[39m: \u001B[38;5;28;01mTrue\u001B[39;00m, \u001B[33m\"\u001B[39m\u001B[33mkeep_links\u001B[39m\u001B[33m\"\u001B[39m: \u001B[38;5;28;01mFalse\u001B[39;00m}\n\u001B[32m--> \u001B[39m\u001B[32m572\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mload_workbook\u001B[49m\u001B[43m(\u001B[49m\n\u001B[32m 573\u001B[39m \u001B[43m \u001B[49m\u001B[43mfilepath_or_buffer\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 574\u001B[39m \u001B[43m \u001B[49m\u001B[43m*\u001B[49m\u001B[43m*\u001B[49m\u001B[43m(\u001B[49m\u001B[43mdefault_kwargs\u001B[49m\u001B[43m \u001B[49m\u001B[43m|\u001B[49m\u001B[43m \u001B[49m\u001B[43mengine_kwargs\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[32m 575\u001B[39m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\reader\\excel.py:348\u001B[39m, in \u001B[36mload_workbook\u001B[39m\u001B[34m(filename, read_only, keep_vba, data_only, keep_links, rich_text)\u001B[39m\n\u001B[32m 318\u001B[39m \u001B[38;5;250m\u001B[39m\u001B[33;03m\"\"\"Open the given filename and return the workbook\u001B[39;00m\n\u001B[32m 319\u001B[39m \n\u001B[32m 320\u001B[39m \u001B[33;03m:param filename: the path to open or a file-like object\u001B[39;00m\n\u001B[32m (...)\u001B[39m\u001B[32m 344\u001B[39m \n\u001B[32m 345\u001B[39m \u001B[33;03m\"\"\"\u001B[39;00m\n\u001B[32m 346\u001B[39m reader = ExcelReader(filename, read_only, keep_vba,\n\u001B[32m 347\u001B[39m data_only, keep_links, rich_text)\n\u001B[32m--> \u001B[39m\u001B[32m348\u001B[39m \u001B[43mreader\u001B[49m\u001B[43m.\u001B[49m\u001B[43mread\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 349\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m reader.wb\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\reader\\excel.py:291\u001B[39m, in \u001B[36mExcelReader.read\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 289\u001B[39m \u001B[38;5;28mself\u001B[39m.read_manifest()\n\u001B[32m 290\u001B[39m action = \u001B[33m\"\u001B[39m\u001B[33mread strings\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m--> \u001B[39m\u001B[32m291\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[43m.\u001B[49m\u001B[43mread_strings\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 292\u001B[39m action = \u001B[33m\"\u001B[39m\u001B[33mread workbook\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 293\u001B[39m \u001B[38;5;28mself\u001B[39m.read_workbook()\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\reader\\excel.py:147\u001B[39m, in \u001B[36mExcelReader.read_strings\u001B[39m\u001B[34m(self)\u001B[39m\n\u001B[32m 145\u001B[39m strings_path = ct.PartName[\u001B[32m1\u001B[39m:]\n\u001B[32m 146\u001B[39m \u001B[38;5;28;01mwith\u001B[39;00m \u001B[38;5;28mself\u001B[39m.archive.open(strings_path,) \u001B[38;5;28;01mas\u001B[39;00m src:\n\u001B[32m--> \u001B[39m\u001B[32m147\u001B[39m \u001B[38;5;28mself\u001B[39m.shared_strings = \u001B[43mreader\u001B[49m\u001B[43m(\u001B[49m\u001B[43msrc\u001B[49m\u001B[43m)\u001B[49m\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\reader\\strings.py:18\u001B[39m, in \u001B[36mread_string_table\u001B[39m\u001B[34m(xml_source)\u001B[39m\n\u001B[32m 16\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m _, node \u001B[38;5;129;01min\u001B[39;00m iterparse(xml_source):\n\u001B[32m 17\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m node.tag == STRING_TAG:\n\u001B[32m---> \u001B[39m\u001B[32m18\u001B[39m text = \u001B[43mText\u001B[49m\u001B[43m.\u001B[49m\u001B[43mfrom_tree\u001B[49m\u001B[43m(\u001B[49m\u001B[43mnode\u001B[49m\u001B[43m)\u001B[49m.content\n\u001B[32m 19\u001B[39m text = text.replace(\u001B[33m'\u001B[39m\u001B[33mx005F_\u001B[39m\u001B[33m'\u001B[39m, \u001B[33m'\u001B[39m\u001B[33m'\u001B[39m)\n\u001B[32m 20\u001B[39m node.clear()\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\descriptors\\serialisable.py:74\u001B[39m, in \u001B[36mSerialisable.from_tree\u001B[39m\u001B[34m(cls, node)\u001B[39m\n\u001B[32m 71\u001B[39m attrib[\u001B[33m\"\u001B[39m\u001B[33mattr_text\u001B[39m\u001B[33m\"\u001B[39m] = node.text\n\u001B[32m 73\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m el \u001B[38;5;129;01min\u001B[39;00m node:\n\u001B[32m---> \u001B[39m\u001B[32m74\u001B[39m tag = \u001B[43mlocalname\u001B[49m\u001B[43m(\u001B[49m\u001B[43mel\u001B[49m\u001B[43m)\u001B[49m\n\u001B[32m 75\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m tag \u001B[38;5;129;01min\u001B[39;00m KEYWORDS:\n\u001B[32m 76\u001B[39m tag = \u001B[33m\"\u001B[39m\u001B[33m_\u001B[39m\u001B[33m\"\u001B[39m + tag\n",
"\u001B[36mFile \u001B[39m\u001B[32mD:\\Program Files\\anaconda3\\envs\\SaaS\\Lib\\site-packages\\openpyxl\\xml\\functions.py:81\u001B[39m, in \u001B[36mlocalname\u001B[39m\u001B[34m(node)\u001B[39m\n\u001B[32m 79\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[33m\"\u001B[39m\u001B[33mcomment\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 80\u001B[39m m = NS_REGEX.match(node.tag)\n\u001B[32m---> \u001B[39m\u001B[32m81\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mm\u001B[49m\u001B[43m.\u001B[49m\u001B[43mgroup\u001B[49m\u001B[43m(\u001B[49m\u001B[33;43m'\u001B[39;49m\u001B[33;43mlocalname\u001B[39;49m\u001B[33;43m'\u001B[39;49m\u001B[43m)\u001B[49m\n",
"\u001B[31mKeyboardInterrupt\u001B[39m: "
]
}
],
@@ -1528,8 +1516,8 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-08-01T08:12:57.996465Z",
"start_time": "2025-08-01T08:10:21.860850Z"
"end_time": "2026-02-26T02:48:25.972319100Z",
"start_time": "2026-02-26T02:34:28.428344700Z"
}
},
"cell_type": "code",
@@ -1538,7 +1526,7 @@
"from api import API\n",
"\n",
"api_instance = API()\n",
"df = pd.read_excel(r\"C:\\Users\\Administrator.DESKTOP-7IC2USJ\\Downloads\\客户资料_20250801111301.xlsx\",sheet_name=\"id为空\")\n",
"df = pd.read_excel(r\"C:\\Users\\hp_z66\\Downloads\\客户资料_20260226092528.xlsx\",sheet_name=\"Sheet3\")\n",
"for index, row in df.iterrows():\n",
" data_id = row[\"data_id\"]\n",
" payload = {\n",
@@ -1549,733 +1537,7 @@
" api_instance.entry_data_delete(payload)"
],
"id": "8a06c19850c522b3",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n",
"返回结果: {'status': 'success'}\n"
]
}
],
"outputs": [],
"execution_count": 1
},
{