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 ...
随机推荐
- 1-CommonJs
诞生背景JS没有模块系统.标准库较少.缺乏包管理工具:前端端没有模块化编程还可以,因为前端逻辑没那么复杂,可以工作下去,在服务器端逻辑性那么强必须要有模块为了让JS可以在任何地方运行,以达到Java. ...
- [acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr. Panda and Fantastic Beasts
地址:http://codeforces.com/gym/101194 题目:略 思路: 这题做法挺多的,可以sam也可以后缀数组,我用sam做的. 1.我自己yy的思路(瞎bb的) 把第一个串建立s ...
- 粗略介绍Java AQS的实现原理
本文转自 http://www.importnew.com/24006.html 感谢作者 对我很有帮助 ①引言 AQS是JDK1.5提供的一个基于FIFO等待队列一个同步器的基础框架,java中的同 ...
- iOS开发之UITableViewController重写
# UITablViewController方法的使用介绍 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // ...
- Ant Design 常用命令汇总
Ant Design React 安装 1. 安装脚手架工具# antd-init 是一个用于演示 antd 如何使用的脚手架工具,真实项目建议使用 dva-cli. $ npm install an ...
- 游戏服务器的思考之三:谈谈MVC
游戏服务器也是基于MVC架构的吗?是的,所有的应用系统都是基于MVC架构的,这是应用系统的天性.不管是客户端还是后台,都包含模型.流程.界面这3个基本要素:不同类型的应用,3要素的“重量”可能各有偏差 ...
- [BZOJ1117]救火站gas
Description 给你一棵树,现在要建立一些消防站,有以下要求: 1. 消防站要建立在节点上,每个节点可能建立不只一个消防站. 2. 每个节点应该被一个消防站管理,这个消防站不一定建立在该节点上 ...
- was控制台英文改成中文
在安装was的时候没有选中简体中文包,所以导致安装后的was控制台显示中文,但是没关系,我们还是通过界面配置来修改,使得控制台从英文变为中文 1.vnc远程到服务器2./opt/IBM/Install ...
- js初步用法
js js引入方式: 1.方式一 通过script标签引入 2.方式二 通过script标签引入 ,src属性 引入一个外部的js文件 注意: 如果你使用了script标签的src属性 那么 ...
- webservice用cxf发布REST
1.新建一个java项目 2.导入cxf相关的jar包,并部署到项目中 3.bean类 package com.xiaostudy; import javax.xml.bind.annotation. ...