Python调用旺店通及淘宝top接口例子

上传人:lil****ar 文档编号:270694012 上传时间:2022-03-26 格式:DOCX 页数:15 大小:124.27KB
返回 下载 相关 举报
Python调用旺店通及淘宝top接口例子_第1页
第1页 / 共15页
Python调用旺店通及淘宝top接口例子_第2页
第2页 / 共15页
Python调用旺店通及淘宝top接口例子_第3页
第3页 / 共15页
Python调用旺店通及淘宝top接口例子_第4页
第4页 / 共15页
Python调用旺店通及淘宝top接口例子_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Python调用旺店通及淘宝top接口例子》由会员分享,可在线阅读,更多相关《Python调用旺店通及淘宝top接口例子(15页珍藏版)》请在金锄头文库上搜索。

1、Python 调用旺店通/淘宝top 接口例子最近项目需要使用 python 来连接旺店通,并且需要调用top 的接口,包含签名的规则,创建表,分页获取等等。话不多说,上代码。下面的例子是获取 ERP 销售订单的出库单信息可以通过按照时间来获取,也可以通过最后修改时间来获取增量数据获取的结果1. 引入各种库import requests import jsonimport Connection import timeimport hashlib import datetime import mathfrom urllib import parse2. 自定义初始化参数definit(self)

2、: self.sid = * self.appkey = *self.appsecret = * self.page_size = 100 self.appkey_tb = * self.target_app_key = * self.appsecret_tb = *self.timestamp_tb = time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time()3. 创建计算旺店通签名函数def get_sign(self, timestamp, start_time, end_time, page_no):str_appkey =

3、 06-appkey: + (0000 + str(len(self.appkey)-4: + - + self.appkey str_end_time = 08-end_time:0019- + str(end_time)str_page_no = 07-page_no: + (0000 + str(len(str(page_no)-4: + - + str(page_no) str_page_size = 09-page_size: + (0000 + str(len(str(self.page_size)-4: + - + str(self.page_size) str_sid = 03

4、-sid: + (0000 + str(len(self.sid)-4: + - + self.sidstr_timestamp = 09-timestamp: + 0010- + str(timestamp) str_start_time = 10-start_time:0019- + str(start_time)str_last = str_appkey + ; + str_end_time + ; + str_page_no + ; + str_page_size + ; + str_sid + ; + str_start_time + ; + str_timestamp + self

5、.appsecretsign_md5 = hashlib.md5(str_last.encode(encoding=UTF-8).hexdigest() # print(明文:%s % str_last)return sign_md54. 创建计算淘宝签名def get_sign_taobao(self, dict_params=None):list_params = sorted(dict_params.items(), key=lambda d: d0) destr = self.appsecret_tbfor i in range(len(list_params):destr = des

6、tr + list_paramsi0 + str(list_paramsi1) tempstr = destr + self.appsecret_tb# print(tb 明文:%s % tempstr)result = hashlib.md5(tempstr.encode(encoding=UTF-8).hexdigest().upper()# print(tb_sign:%s % result) return result5. 创建接口请求参数def parse_url(self, url, timestamp, start_time, end_time, page_no, method=

7、None): if method is None:sign = self.get_sign(timestamp, start_time, end_time, page_no) values = sid: self.sid,appkey: self.appkey, page_no: page_no, page_size: self.page_size, start_time: start_time, end_time: end_time, timestamp: timestamp, sign: signelse:b = requests.post(url, data=values)body_di

8、ct1 = sid: self.sid,app_key: self.appkey_tb, timestamp: self.timestamp_tb, method: method,target_app_key: self.target_app_key, format: json,sign_method: md5, v: 2.0,page_size: self.page_size, start_time: start_time, end_time: end_timesign = self.get_sign_taobao(body_dict1) body_dict1sign = signurl_d

9、ata = parse.urlencode(body_dict1)# print(url_data)url = url.format(method, url_data) + &sign= + sign# quote()将字符串进行编码b = requests.get(url)result = json.loads(b.content.decode() return result6. 创建响应结果接收def get_condition(self, str_sql, url, table_dict, days, method=None):sql = Connection.connect_sql(s

10、tr_sql, sqlserver_Allove, read)start_date_ori = sql00.strftime(%Y-%m-%d %H:%M:%S) if sql00 is not None else ( datetime.datetime.now() - datetime.timedelta(days=1).strftime(%Y-%m-%d %H:%M:%S)if days != :start_date_ori=(datetime.datetime.now()-datetime.timedelta(days=days).strftime(%Y-%m-%d %H:%M:%S)s

11、tart_date_ori=datetime.datetime.strptime(start_date_ori,%Y-%m-%d%H:%M:%S)+datetime.timedelta(seconds=1)end_date_ori = ( datetime.datetime.strptime(datetime.datetime.now().strftime(%Y-%m-%d%Y-%m-%d %H:%M:%S)num = (end_date_ori - start_date_ori).days + 1 for d in range(0, num):start_date = start_date_

12、ori + datetime.timedelta(days=d)if end_date_ori start_date_ori + datetime.timedelta(days=d + 1): end_date = start_date_ori + datetime.timedelta(days=d + 1)%H:%M:%S),else:end_date = end_date_oriself.get_query(url, table_dict, start_date, end_date, method)7. 创建响应结果内容def get_query(self, url, table_list

13、, start_time, end_time, method=None): timestamp = int(time.time()print(表%s%s,查找时间范围:【%s-%s】 % (method, table_listtable_name, start_time, end_time) response = self.parse_url(url, timestamp, start_time, end_time, 0, method)if method is None:response_code = str(responsecode)else:response_code = str(res

14、ponseresponseerrorcode)if response_code = 0: if method is None:total_count = responsetotal_countelse:total_count = responseresponsetotal_count response = responseresponseif total_count != 0:page_all = math.ceil(int(total_count) / self.page_size) self.insert_data_first(table_list, response, total_count, 0)# 首页数据for i in range(1, page_all - 1):response_page = self.parse_url(url, timestamp, start_time, end_time, i, method) if response_code = 0:self.insert_data_first(table_list, response_page, total_count, i)# 分页数据8. 第一层数据结果写入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号