浅谈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中xrange和range的区别
May 13 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
Python模拟随机游走图形效果示例
Feb 06 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
Python中dict和set的用法讲解
Mar 28 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
python图片二值化提高识别率代码实例
Aug 24 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
编写python程序的90条建议
Apr 14 Python
python源码剖析之PyObject详解
May 18 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中改变图片的尺寸大小的代码
2011/07/17 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
Linux中Python 环境软件包安装步骤
2016/03/31 Python
详解Python发送email的三种方式
2018/10/18 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
网络技术专业求职信
2014/02/18 职场文书
成绩单公证书
2014/04/10 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
局火灾防控工作方案
2014/05/25 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
小学信息技术教学反思
2016/02/16 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
SQL之各种join小结详细讲解
2021/08/04 MySQL
Javascript设计模式之原型模式详细
2021/10/05 Javascript
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL