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批量上传的更多相关文章

  1. 文件上传和下载(可批量上传)——Spring(三)

    在文件上传和下载(可批量上传)——Spring(二)的基础上,发现了文件下载时,只有在Chrome浏览器下文件名正常显示,还有发布到服务器后,不能上传到指定的文件夹目录,如上传20160310.txt ...

  2. 带进度条的文件批量上传插件uploadify

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...

  3. Discuz模拟批量上传附件发帖

    简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...

  4. Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙

    前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...

  5. 利用uploadify+asp.net 实现大文件批量上传。

    前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...

  6. uploadify文件批量上传

    uploadify能够时间文件的批量上传,JS文件包下载地址,使用说明可以参考官网文档(http://www.uploadify.com/documentation/) 使用方法如下代码: $(&qu ...

  7. ux.plup.File plupload 集成 ux.plup.FileLis 批量上传预览

    //plupload 集成 Ext.define('ux.plup.File', { extend: 'Ext.form.field.Text', xtype: 'plupFile', alias: ...

  8. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    WEB版一次选择多个文件进行批量上传(Plupload)的解决方案  转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...

  9. 文件批量上传的工具,要实现暂停继续、断点续传等功能(使用QtNetwork和QHttpMultiPart,和定时器检查超时)

    最近在做一个文件批量上传的工具,要实现暂停继续.断点续传等功能.利用Qt自带的QtNetwork模块,完成这些需求并没有费多少周章,主要思路就是将文件分块,然后用while循环依次传输.具体实现代码比 ...

随机推荐

  1. 剑指offer 面试题8:二叉树的下一个节点

    题目:给定一棵二叉树和其中一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左.右节点的指针,还有一个节点指向父节点的指针. 中序遍历序列是{d,b,h,e,i,a,f,c,g} ...

  2. javaScript与css、html常见的兼容

    最近几天总是遇到兼容问题,就整理了一下javaScript和html.css出现的常见兼容.有不全面或不对的欢迎大家指正.也希望这条博客可以帮到一些刚学习的前端的朋友. 一.javaScript出现的 ...

  3. 基于web公交查询系统----数据库设计

    要求:公交查询系统,管理员可以新增线路,修改车辆参数,发车时间表,删除车次,站名等. 用户可以按线路查询,按站点查询相关信息,也可查询两站点之间的换乘信息等. 数据库应包含管理员表,车站表,线路表,车 ...

  4. 识别led灯和驱动器的关联关系

    精准答案: https://wenku.baidu.com/view/db1f7361ac02de80d4d8d15abe23482fb4da02d6.html?qq-pf-to=pcqq.group ...

  5. 重启nova-scheduler服务,报错Login was refused using authentication mechanism AMQPLAIN

    问题描述 运行 systemctl restart openstack-nova-scheduler.service 失败,查看日志报错如下: 2019-12-22 14:52:27.426 1513 ...

  6. rpm续

    一.安装源码包 安装源码包通常须要一下三步: (1) ./configure. 这步可以定制功能,加上相应 的选项即可,具体有什么选项可以通过命令./configure help来查看.这一步会 自动 ...

  7. bolt继承关系和区别

    先上个图:  具体区别: IRichBolt/IBasicBolt 区别IRichBolt和IBasicBolt IRichBolt继承自IBolt和IComponent.IBasicBolt继承自I ...

  8. Svn CleanUp failed解决方案

    在项目目录下找到wc.db文件,使用sqlite工具打开,清空main下的WC_LOCK和 WORK_QUEUE表即可.

  9. 在RedisTemplate中使用scan代替keys指令

    keys * 这个命令千万别在生产环境乱用.特别是数据庞大的情况下.因为Keys会引发Redis锁,并且增加Redis的CPU占用.很多公司的运维都是禁止了这个命令的 当需要扫描key,匹配出自己需要 ...

  10. FusionInsight大数据开发---Flume应用开发

    Flume应用开发 要求: 了解Flume应用开发适用场景 掌握Flume应用开发 Flume应用场景Flume的核心是把数据从数据源收集过来,在送到目的地.为了保证输送一定成功,发送到目的地之前,会 ...