ad批量上传
import pandas as pd
import requests
import arrow
from collections import deque
import json campaign_name_deq = deque([''],2)
ad_name_deq = deque([''],2) Today = arrow.now().format("YYYY-MM-DD") headers = {
xxx
} def get_excel_data():
data = pd.read_excel('./multi_xx.xlsx')
user_id = data['xxD'].tolist()
campaign_name = data['计xx'].tolist()
ad_name = data['xxx'].tolist()
creative_name = data['创xx'].tolist()
creative_title = data['xx'].tolist()
creative_desc = data['xx'].tolist()
creative_ldpUrl = data['xxxurl'].tolist()
return [user_id,campaign_name,ad_name,creative_name,creative_title,creative_desc,creative_ldpUrl] def get_productId(userId):
url = f'hxxxx={userId}'
res = requests.get(url, headers=headers)
data = res.json()['result'][0]['id']
return data def add_new_campaign(userId, campaignName):
url = 'hxxxxx'
data = {
xxx
}
res = requests.post(url, headers=headers, data=json.dumps(data))
campaign_id = res.json()['id']
print(campaignName,campaign_id)
status = res.json()["status"]
return campaign_id, status def add_new_ad(campaignId, adName):
url = 'hxxxxx'
data = {
x
"appInstall": None,
x
}, }
res = requests.post(url, headers=headers, data=json.dumps(data))
adId = res.json()['id']
status = res.json()["status"]
print(adName, adId,status)
return adId, status def add_new_creative_word(adId, name, title, desc, ldpUrl):
url = 'htxxxxxx'
data = {
"xx
}
res = requests.post(url, headers=headers, data=json.dumps(data))
status = res.json()["status"]
print(adId,name, status) adId, ad_status = 0,'' def gen_creative(userid, campaign_name, ad_name, creative_name, creative_title, creative_desc, creative_ldpUrl):
campaign_name_deq.append(campaign_name)
last_campaign_name = campaign_name_deq.popleft() ad_name_deq.append(ad_name)
last_ad_name = ad_name_deq.popleft() campaign_id, campaign_status = 0,'' if campaign_name != last_campaign_name:
campaign_id, campaign_status = add_new_campaign(userid, campaign_name) if campaign_status == 'ok' and ad_name != last_ad_name:
global adId, ad_status
adId, ad_status = add_new_ad(campaign_id, ad_name)
if ad_status == 'ok':
add_new_creative_word(adId, creative_name, creative_title, creative_desc, creative_ldpUrl)
else:
print(adId,ad_status) def mulit_upload():
l = get_excel_data()
a = list(map(gen_creative,*l)) if __name__ == '__main__':
mulit_upload()
ad批量上传的更多相关文章
- 文件上传和下载(可批量上传)——Spring(三)
在文件上传和下载(可批量上传)——Spring(二)的基础上,发现了文件下载时,只有在Chrome浏览器下文件名正常显示,还有发布到服务器后,不能上传到指定的文件夹目录,如上传20160310.txt ...
- 带进度条的文件批量上传插件uploadify
有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...
- Discuz模拟批量上传附件发帖
简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...
- Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...
- 利用uploadify+asp.net 实现大文件批量上传。
前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...
- uploadify文件批量上传
uploadify能够时间文件的批量上传,JS文件包下载地址,使用说明可以参考官网文档(http://www.uploadify.com/documentation/) 使用方法如下代码: $(&qu ...
- ux.plup.File plupload 集成 ux.plup.FileLis 批量上传预览
//plupload 集成 Ext.define('ux.plup.File', { extend: 'Ext.form.field.Text', xtype: 'plupFile', alias: ...
- WEB版一次选择多个文件进行批量上传(Plupload)的解决方案
WEB版一次选择多个文件进行批量上传(Plupload)的解决方案 转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...
- 文件批量上传的工具,要实现暂停继续、断点续传等功能(使用QtNetwork和QHttpMultiPart,和定时器检查超时)
最近在做一个文件批量上传的工具,要实现暂停继续.断点续传等功能.利用Qt自带的QtNetwork模块,完成这些需求并没有费多少周章,主要思路就是将文件分块,然后用while循环依次传输.具体实现代码比 ...
随机推荐
- qbxt济南七日(游)学习
七月的风八月的雨 卑微的我喜欢遥远的你 第七天: 更新 友谊的巨轮! 第六天: 我好饿 动态规划wcnm hhh, zkx坐在我旁边xswl 只要我和男生聊天 他就会把头探过来 用肯定的语气说: &q ...
- python requests 上传excel数据流
headers=self.headers #获取导入模版 file_home = self.import_template log.info(file_home) wb = load_workbook ...
- TDD具体实施过程,可以看作两个层次
在代码层次,在编码之前写测试脚本,可以称为单元测试驱动开发(Unit Test Driven Development,UTDD) 在业务层次,在需求分析时就确定需求(如用户故事)的验收标准,即验收测试 ...
- [C#]AdvPropertyGrid的使用示例(第三方控件:DevComponents.DotNetBar2.dll)
开发环境:Visual Studio 2019 .NET版本:4.5.2 效果如下: 1.初始化界面: 2.属性“人物”-自定义控件显示: 3.属性“地址”-自定义窗体显示: 4.属性“性别”-枚举显 ...
- python 项目实战之Django 邮件发送
发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...
- Shell脚本之六 数学计算
前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下 ...
- 关于nginx proxy_next_upstream 重试 和 max_fails的那些事
背景及简要分析 前几天一次故障定位的时候发现,后端服务(java)在从故障中恢复之后,会出现大量499,且会持续较长时间无法自行恢复.根本原因是服务容量问题,处理太慢导致客户端等不了了,主动断开.不过 ...
- | C语言I作业02
C语言I博客作业02 标签: 18软件2班 李煦亮 问题 答案 这个作业属于那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/C ...
- 网络基础 ----------- osi 与 一些协议
1.了解 OSI ISO IOS ISO(全称:International Organization for Standardization) 国际标准化组织, 成立于1947年2月23日,制定全世界 ...
- Java使用正则表达式匹配多行 Pattern flags
Java中正则匹配有多种模式,若不选择模式则默认为单行匹配 匹配模式(Pattern flags) compile()方法有两个模式 未开匹配模式 Pattern compile(String reg ...