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

工作需要调有赞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. sqlserver2008自动备份,自动删除较早的别分文件

    1.自动备份数据库 完成时候可以在维护计划中看到这个计划任务(xxxback),同事在作业里面会有个类似名称的作业(sql代理要启动,才能自动执行). 2.自动删除较早的备份文件 邮件选择上面的维护计 ...

  2. iOS 关于BTC 一些知识点

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

  3. 对Docker的一点理解

    Docker是什么? Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会相互影响.那么就不需要专门 ...

  4. 基于Python操作redis介绍

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 毕业前的最后一个学期(2016.03),龙哥结婚了.可是总有些人喜欢嘲笑别人,调侃我.当时我就理直气壮的告诉他们,等龙哥孩子 ...

  5. win7 eclipse设置Courier New字体

    win7系统 1.控制面板-->字体.找到Courier New 字体,右键->显示,这种字体就开始变亮了. 2.eclipse里设置: windows-->Preferences- ...

  6. Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法

    Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)易错使用 一直用ORM,今天用JdbcTemplate ...

  7. Spring Tomcat启动过程

    入口,配置再web.xml中, 初始化applicationContext 创建webApplicationContext,这里可加载web.xml文件中定义了contextClass 获取conte ...

  8. nginx简介及优点总结

    简介:nginx是web服务器,由C语言开发,基于事件驱动能处理百万级别的tcp连接,高度模块化的设计和自由的许可证使得扩展其功能的模块层出不穷, 跨平台,可使用当前操作系统特有的一些高效API来提高 ...

  9. 20145328 《Java程序设计》实验一实验报告

    20145328 <Java程序设计>实验一实验报告 实验名称 Java开发环境的熟悉(Windows + IDEA) 实验内容 使用JDK编译.运行简单的Java程序: 使用IDEA 编 ...

  10. ubuntu搭建tiny4412环境【学习笔记】

    一.安装完系统之后需要执行如下步骤 1.sudo apt-get update 更新软件源 2.sudo apt-get install vsftpd openssh-server nfs-kerne ...