python 调用接口
这个比较乱,抽口再修改一下。
工作需要调有赞API的接口数据, 返回数据. 进行数据处理
现在两部分比较重要:1 自动获取数据 , 2处理excel的过程.
- 明白接口的过程.传入参数
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 调用接口的更多相关文章
- Python - 调用接口合并文件夹下多个Excel表
在工作中经常遇到需要打开许多个excel表格,然后合并的需求,合并的同时要求格式必须原汁原味的保留.利用VBA代码可以比较轻松的解决,现在我们来看Python中如何实现. 上代码: from open ...
- python调用接口方式
python中调用API的几种方式: - urllib2- requests 一.调用别人的接口 案例1.urllib2 import urllib2, urllib github_url ='htt ...
- python调用接口的方式
python中调用API的几种方式: - urllib2 - httplib2 - pycurl - requests urllib2 import urllib2, urllib github_ur ...
- python调用接口——requests模块
前提:安装pip install requests 导入import requests 1.get请求 result=requests.get(url,d).json() 或 .text 2. ...
- Python调用接口的几种方式
1. requests import requests, jsongithub_url = 'https://api.github.com/user/repos'data = json.dumps({ ...
- Python 调用接口添加头信息
import requests,jsonurl = 'http://47.108.115.193:9000/tb-store/store/getWechatAppHome'header={" ...
- Python 调用C++
1.C++代码提供Python需要的接口: #include "stdafx.h" #include <boost/python.hpp> #include <s ...
- python调用zabbix接口实现Action配置
要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...
- python调用ice接口
今天用python调用ice接口,遇到如下提示 ImportError: No module named Ice 解决方案是 set PYTHONPATH=C:\Program Files\ZeroC ...
随机推荐
- @Transactional(rollbackFor=Exception.class)的使用
转载: java阿里巴巴规范提示:方法[edit]需要在Transactional注解指定rollbackFor或者在方法中显示的rollback. 先来看看异常的分类 error是一定会回滚的 这里 ...
- java中的重量级与轻量级概念
首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的. 比方说EJB就是一个重量级的框架,因为它对所编写的代码有限制,同时它也提供分布式等复杂的功能. 相比之下 ...
- JMS--消息头
一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload).对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextM ...
- z-albert之开启博文之路
其实注册博客园已经蛮久的了,一直都只是停留在看,却没有自己动手一篇属于自己的技术博文.之所以以前一直没写,以前没有工作,一直都是小白.然而今天为什么感写了呢,并不是自己比以前懂得多多少,而是希望将自己 ...
- jsp中获取list长度
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ tag ...
- Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api Ind ...
- C# Programming Guide-->Statements, Expressions, and Operators-->Anonymous Functions
C# Programming Guide Anonymous Functions Lambda Expressions Anonymous Methods In versions of C# befo ...
- [代码解析]Mask R-CNN介绍与实现(转)
文章来源 DFann 版权声明:如果你觉得写的还可以,可以考虑打赏一下.转载请联系. https://blog.csdn.net/u011974639/article/details/78483779 ...
- hdu 4857 逃生 拓扑排序+逆向建图
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descr ...
- 关于MAC升级后,vim更新插件报错
找不到路径: 直接在终端 terminal 输入: xcode-select --install