浅谈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中用startswith()函数判断字符串开头的教程
Apr 07 Python
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
Python制作数据导入导出工具
Jul 31 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
pygame实现飞机大战
Mar 11 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
在Python中字典按值排序的实现方法
Nov 12 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 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教程-第一天
2007/03/18 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python读写zip压缩文件的方法
2018/08/29 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
网管求职信
2014/03/03 职场文书
倡议书格式
2014/04/14 职场文书
创先争优活动心得体会
2014/09/04 职场文书
网站出售协议书范文
2014/10/10 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
python绘制箱型图
2021/04/27 Python
Java常用函数式接口总结
2021/06/29 Java/Android
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL