浅谈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中的多线程编程
Apr 09 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
python使用knn实现特征向量分类
Dec 26 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
用django设置session过期时间的方法解析
Aug 05 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
htm调用JS代码
2007/03/15 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
python实现最长公共子序列
2018/05/22 Python
Django实现表单验证
2018/09/08 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
python实现飞机大战项目
2020/03/11 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
幼儿园教师备课制度
2014/01/12 职场文书
安全生产活动月方案
2014/03/09 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
放假通知
2015/04/14 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书