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 ...
随机推荐
- java中全面的单例模式多种实现方式总结
单例模式的思想 想整理一些 java 并发相关的知识,不知道从哪开始,想起了单例模式中要考虑的线程安全,就从单例模式开始吧. 以前写过单例模式,这里再重新汇总补充整理一下,单例模式的多种实现. 单例模 ...
- 46. Permutations (全排列)
Given a collection of distinct numbers, return all possible permutations. For example,[1,2,3] have t ...
- iOS 关于BTC 一些知识点
1.BTC 用这个网 可以校验 自己的库生成的助记词 地址 是否是合法正常的 https://iancoleman.io/bip39/ 2.知晓 BTC 钱包是否有钱 和交易记录 https://te ...
- enumerateObjectsUsingBlock 、for 、for(... in ...) 的区别 & 性能测试
for VS for(... in ...) for 的应用范围广基本可以NSArray.NSArray以及C语言的数组等,而for(... in ...)仅限于NSArray.NSArray等 fo ...
- 手写Bind
Function.prototype.bind2 = function(context){ var self = this; var args = [].slice.call(arguments,1) ...
- .NET Core + EF 报nuget包不兼容
错误信息如下: 严重性 代码 说明 项目 文件 行 禁止显示状态错误 NU1107 Microsoft.EntityFrameworkCore 中检测到版本冲突.直接安装/引用 Microsoft.E ...
- IIS如何确定请求的处理程序
1. 给定一个url请求,IIS需要确定它的文件名,扩展名,以及最相似的与本请求资源合适的"ScriptMaps"metadata (缓存的ISAPI扩展 - 应用程序扩展名映射列 ...
- 【Python】错误、调试和测试
链接到错误处理 链接到调试 链接到单元测试 链接到文档测试 [错误处理] 小结:遇到错误怎么办? 1.不理它. 2.捕获它,再抛出. 3.捕获并处理错误. raise 不懂如何处理错误就直接抛出(ra ...
- yum安装redis phpredis扩展
转载地址:http://blog.csdn.net/musicrabbit/article/details/9729941 redis和php-redis在官方源上是没有的,需要安装其他的源,其他源的 ...
- 优盘版Kali
准备USB镜象 下载Kali linux. 如果你用的是Windows,下载Win32 Disk Imager. *nix类系统不需要额外的软件. 一块U盘(至少 2GB 容量). Kali Linu ...