这个比较乱,抽口再修改一下。

工作需要调有赞API的接口数据,  返回数据. 进行数据处理

现在两部分比较重要:1 自动获取数据  ,  2处理excel的过程.

  1. 明白接口的过程.传入参数

    https://open.youzan.com/v3/apicenter/doc-api-main/1/2/salesman/youzan.salesman.trades.get

 这个地址里面,都有 各个很细的API 过程. 例如

    导入 外部API  。例如获得分销用户的方法的API .

  

  用户的api 文档

from app.external.yz.api_util import YzApiUtil

class YzUserApi(YzApiUtil):
"""
有赞会员Api
""" def get_follower(self, fans_id=None, weixin_openid=None):
"""
根据微信粉丝用户的 weixin_openid 或 fans_id 获取用户信息
:param fans_id:
:param weixin_openid:
:return:
""" params = {} if fans_id:
params['fans_id'] = fans_id
elif weixin_openid:
params['weixin_openid'] = weixin_openid
else:
return None data = self._invoke('youzan.users.weixin.follower.get', '3.0.0', 'GET', params=params) if 'response' in data:
return data['response']['user']
else:
return None def get_customer(self, fans_id=None, mobile=None, youzan_account=None):
"""
获取客户详情
:param fans_id:
:param mobile:
:param youzan_account:
:return:
""" params = {} if fans_id:
params['account'] = '{"account_type":"FansID","account_id":"' + str(fans_id) + '"}'
elif mobile:
params['account'] = '{"account_type":"Mobile","account_id":"' + str(mobile) + '"}'
elif youzan_account:
params['account'] = '{"account_type":"YouZanAccount","account_id":"' + str(youzan_account) + '"}'
else:
return None data = self._invoke('youzan.scrm.customer.get', '3.1.0', 'GET', params=params) if 'response' in data:
return data['response']
else:
return None def get_openid(self, mobile):
"""
使用手机号获取用户openId(获取的商家自有粉丝的openId。fans_type =1时)
:param mobile: 会员手机号
:return:
{
"open_id": "oTtVis-xiMQjlBME5Xi4Bc_twuqA",
"union_id": "oqY0-wpXFmBsPI2IrTUYx3DigfjY"
}
""" params = {
'mobile': mobile,
} data = self._invoke('youzan.user.weixin.openid.get', '3.0.0', 'GET', params=params) if 'response' in data:
return data['response']
else:
return None def import_user(self):
"""
导入三方帐号信息,用于App开店帐号一键授权
:doc: https://open.youzan.com/v3/apicenter/doc-api-main/1/2/account_import/youzan.user.platform.import
""" params = {
'country_code': '+86',
'mobile': '',
'open_user_id': '',
} data = self._invoke('youzan.user.platform.import', '1.0.0', 'GET', params=params) if 'response' in data:
return data['response']
else:
return None

  2  项目中接口服务

  测试接口通的数据代码:

from app.external.yz.user_api import YzUserApi
from app.model.yz_user import YzUser
from app.utils.x_logger import logger class YzUserTestService:
"""
有赞用户Test Service
""" # 这是测试看是否通 def __init__(self):
self.yz_api_user = YzUserApi() def get_user(self, mobile):
user = self.yz_api_user.get_customer(mobile=mobile)
logger.info(user)
return user #主程序执行,理论上下面的这些不要写在里面。 执行数据保存
if __name__ == '__main__':
result_user = YzUserTestService().get_user("")
  # 用户传入参数 yz_user = YzUser()
yz_user.name = result_user['name']
yz_user.telephone = result_user['mobile']
yz_user.save() a = 1

  

3  保存mysql 数据库表里

在mabao51数据库里建好同样数据结构的表

from app import db

class YzUser(db.Model):
# 自定义表名:
__tablename__ = 'yz_user'
id = db.Column(db.BigInteger, primary_key=True)
name = db.Column(db.String(50), nullable=False, default='')
telephone = db.Column(db.String(20), default='') def save(self):
db.session.add(self)
db.session.commit() if __name__ == '__main__':
db.create_all()
# test = YzUser.query.get(1) a = 1

python 调用接口的更多相关文章

  1. Python - 调用接口合并文件夹下多个Excel表

    在工作中经常遇到需要打开许多个excel表格,然后合并的需求,合并的同时要求格式必须原汁原味的保留.利用VBA代码可以比较轻松的解决,现在我们来看Python中如何实现. 上代码: from open ...

  2. python调用接口方式

    python中调用API的几种方式: - urllib2- requests 一.调用别人的接口 案例1.urllib2 import urllib2, urllib github_url ='htt ...

  3. python调用接口的方式

    python中调用API的几种方式: - urllib2 - httplib2 - pycurl - requests urllib2 import urllib2, urllib github_ur ...

  4. python调用接口——requests模块

    前提:安装pip install requests 导入import requests 1.get请求   result=requests.get(url,d).json()  或  .text 2. ...

  5. Python调用接口的几种方式

    1. requests import requests, jsongithub_url = 'https://api.github.com/user/repos'data = json.dumps({ ...

  6. Python 调用接口添加头信息

    import requests,jsonurl = 'http://47.108.115.193:9000/tb-store/store/getWechatAppHome'header={" ...

  7. Python 调用C++

    1.C++代码提供Python需要的接口: #include "stdafx.h" #include <boost/python.hpp> #include <s ...

  8. python调用zabbix接口实现Action配置

    要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...

  9. python调用ice接口

    今天用python调用ice接口,遇到如下提示 ImportError: No module named Ice 解决方案是 set PYTHONPATH=C:\Program Files\ZeroC ...

随机推荐

  1. java中全面的单例模式多种实现方式总结

    单例模式的思想 想整理一些 java 并发相关的知识,不知道从哪开始,想起了单例模式中要考虑的线程安全,就从单例模式开始吧. 以前写过单例模式,这里再重新汇总补充整理一下,单例模式的多种实现. 单例模 ...

  2. 46. Permutations (全排列)

    Given a collection of distinct numbers, return all possible permutations. For example,[1,2,3] have t ...

  3. iOS 关于BTC 一些知识点

    1.BTC 用这个网 可以校验 自己的库生成的助记词 地址 是否是合法正常的 https://iancoleman.io/bip39/ 2.知晓 BTC 钱包是否有钱 和交易记录 https://te ...

  4. enumerateObjectsUsingBlock 、for 、for(... in ...) 的区别 & 性能测试

    for VS for(... in ...) for 的应用范围广基本可以NSArray.NSArray以及C语言的数组等,而for(... in ...)仅限于NSArray.NSArray等 fo ...

  5. 手写Bind

    Function.prototype.bind2 = function(context){ var self = this; var args = [].slice.call(arguments,1) ...

  6. .NET Core + EF 报nuget包不兼容

    错误信息如下: 严重性 代码 说明 项目 文件 行 禁止显示状态错误 NU1107 Microsoft.EntityFrameworkCore 中检测到版本冲突.直接安装/引用 Microsoft.E ...

  7. IIS如何确定请求的处理程序

    1. 给定一个url请求,IIS需要确定它的文件名,扩展名,以及最相似的与本请求资源合适的"ScriptMaps"metadata (缓存的ISAPI扩展 - 应用程序扩展名映射列 ...

  8. 【Python】错误、调试和测试

    链接到错误处理 链接到调试 链接到单元测试 链接到文档测试 [错误处理] 小结:遇到错误怎么办? 1.不理它. 2.捕获它,再抛出. 3.捕获并处理错误. raise 不懂如何处理错误就直接抛出(ra ...

  9. yum安装redis phpredis扩展

    转载地址:http://blog.csdn.net/musicrabbit/article/details/9729941 redis和php-redis在官方源上是没有的,需要安装其他的源,其他源的 ...

  10. 优盘版Kali

    准备USB镜象 下载Kali linux. 如果你用的是Windows,下载Win32 Disk Imager. *nix类系统不需要额外的软件. 一块U盘(至少 2GB 容量). Kali Linu ...