浅谈Python接口对json串的处理方法


Posted in Python onDecember 19, 2018

最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。

1.接口测试:

目前涉及到的只是对简单单一的接口进行参数传递,得到返回自。

2.关于各种概念:

2.1 http请求包含post方法、get方法。通过json串或XML传递,但后者未做研究

2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我。

2.3 POST:浏览器告诉服务器想法不一些信息到某个网址,服务器需确保数据被存储且只存储一次。

2.4 HEAD:浏览器告诉服务器,给我消息头,像get那样被接收。

2.5 Python对数据的处理模块可以使用urllib、urllib2模块或requests模块

3.urllib、urllib2实例

#coding=utf_8
import urllib2,urllib
import json
import unittest,time,re

class APITest():
  """
  接口测试类
  """
  def api_test(self, method, url, getparams, postparams):
    str1 = ''

    #GET方法调用
    if method == 'GET':
      if getparams != "":
        for x in getparams:
          str1 = str1 + x + '=' + urllib2.quote(str(getparams.get(x)))
          if len(getparams) > 2:
            str1 = str1 + "&"
        url = url + "&" + str1

      result = urllib2.urlopen(url).read()

    #POST方法调用
    if method=='POST':
      if postparams != "":
        data = urllib.urlencode(postparams)
        req = urllib2.Request(data)
      response = urllib2.urlopen(req)
      result = response.read()

    #result转为json数据
    jsdata = json.loads(result)
    return jsdata

class APIGetRes(unittest.TestCase):
  def test_call(self):
    api = APITest()
    getparams={'keyword':'测试'}
    postparams=''
    data = api.api_test('GET','http://api.zhongchou.cn/deal/list?v=1',getparams,postparams)
    print data
    if (data['errno']!=""):
      self.assertEqual(0, data['errno'])
      print"接口 deal/list-------------OK!"
    else:
      print"接口 deal/list-------------Failure!"
      self.assertEqual(0, data['errno'])

if __name__ == '__main__':
  unittest.main()

Requests实例

#coding=utf_8
import requests
import json
import unittest,time,re


class APIGetAdlis(unittest.TestCase):
  def test_call(self):
    github_url='http://api.zhongchou.cn/deal/list?v=1'
    data = json.dumps({'keyword':'测试'})
    resp = requests.post(github_url,data)
    print resp.json
    #if (data['errno']!=''):
    #  self.assertEqual(0, data['errno'])
    #  print"接口 deal/list-------------OK!"
    #else:
    #  print"接口 deal/list-------------Failure!"
    #  self.assertEqual(0, data['errno'])

粗略了解,待深入学习!

以上这篇浅谈Python接口对json串的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的lstrip()方法使用简介
May 19 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
使用python实现省市三级菜单效果
Jan 20 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
python实现多线程抓取知乎用户
Dec 12 Python
Python Json序列化与反序列化的示例
Jan 31 Python
python在每个字符后添加空格的实例
May 07 Python
基于Django实现日志记录报错信息
Dec 17 Python
Django实现内容缓存实例方法
Jun 30 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
Python IO文件管理的具体使用
Mar 20 Python
python实现的MySQL增删改查操作实例小结
Dec 19 #Python
python3 http提交json参数并获取返回值的方法
Dec 19 #Python
python3.6使用urllib完成下载的实例
Dec 19 #Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 #Python
对python内置map和six.moves.map的区别详解
Dec 19 #Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 #Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 #Python
You might like
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python求最大值最小值方法总结
2019/06/25 Python
使用Python实现音频双通道分离
2020/12/25 Python
C++程序员求职信
2014/05/07 职场文书
2015年乡镇党务公开工作总结
2015/05/19 职场文书
热爱劳动主题班会
2015/08/14 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python