admin 管理员组文章数量: 1184232
python 调用接口
这个比较乱,抽口再修改一下。
工作需要调有赞API的接口数据, 返回数据. 进行数据处理
现在两部分比较重要:1 自动获取数据 , 2处理excel的过程.
- 明白接口的过程.传入参数
.salesman.trades.get
这个地址里面,都有 各个很细的API 过程. 例如
导入 外部API 。例如获得分销用户的方法的API .
用户的api 文档
from app.external.yz.api_util import YzApiUtilclass 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_idelif weixin_openid:params['weixin_openid'] = weixin_openidelse:return Nonedata = self._invoke('youzan.users.weixin.follower.get', '3.0.0', 'GET', params=params)if 'response' in data:return data['response']['user']else:return Nonedef 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 Nonedata = self._invoke('youzan.scrm.customer.get', '3.1.0', 'GET', params=params)if 'response' in data:return data['response']else:return Nonedef 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 Nonedef import_user(self):"""导入三方帐号信息,用于App开店帐号一键授权:doc: .user.platform.import"""params = {'country_code': '+86','mobile': '17392940060','open_user_id': '17392940060',}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 loggerclass 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("18874189337")
# 用户传入参数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 dbclass 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
转载于:.html
本文标签: python 调用接口
版权声明:本文标题:python 调用接口 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1686652920a20693.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论