Python调用REST API接口的几种方式汇总

 更新时间:2020年10月19日 11:54:04   作者:py3study  
这篇文章主要介绍了Python调用REST API接口的几种方式汇总,帮助大家更好的利用python进行自动化运维,感兴趣的朋友可以了解下

相信做过自动化运维的同学都用过REST API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。

本文主要介绍python中调用REST API的几种方式,下面是python中会用到的库。

  • - urllib2
  • - httplib2
  • - pycurl
  • - requests

urllib2

- Sample1

import urllib2, urllib
github_url = 'https://api.github.com/user/repos'
password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, github_url, 'user', '***')
auth = urllib2.HTTPBasicAuthHandler(password_manager) # create an authentication handler
opener = urllib2.build_opener(auth) # create an opener with the authentication handler
urllib2.install_opener(opener) # install the opener... 
request = urllib2.Request(github_url, urllib.urlencode({'name':'Test repo', 'description': 'Some test repository'})) # Manual encoding required
handler = urllib2.urlopen(request)
print handler.read()

- Sample2

import urllib2
url = 'http://ems.vip.ebay.com/removeSIforcloud.cgi?ip=' + ip
req = urllib2.Request(url)
req.add_header('IAF',abc.token_authiaas)
try:
  resp = urllib2.urlopen(req)
except urllib2.HTTPError, error:
  print "Cannot remove service instance!", error
  sys.exit(1)
response = resp.read()
print response

- Sample3

import urllib2, urllib, base64
url = "https://reparo.stratus.ebay.com/reparo/bootstrap/registerasset/" + rackid + "/" + asset
data = urllib.urlencode({
        'reservedResource':'RR-Hadoop',
        'resourceCapability':'Production',
        'movetoironic':'False',
        'output':'json'
    })
print "Bootstrap Asset jobs starting .............."

base64string = base64.encodestring('%s:%s' % (user, passwd)).replace('\n', '')
request = urllib2.Request(url, data, headers={"Authorization" : "Basic %s" % base64string})
response = urllib2.urlopen(request).read()
response_json = json.loads(response)
response_status = response_json['status']
status_code = response_status['statusCode']
status = response_status['status']
message = response_status['message']      
print status_code , status, message

2. httplib2

import urllib, httplib2
github_url = '
h = httplib2.Http(".cache")
h.add_credentials("user", "******", "
data = urllib.urlencode({"name":"test"})
resp, content = h.request(github_url, "POST", data)
print content

3. pycurl

import pycurl, json
github_url = "
user_pwd = "user:*****"
data = json.dumps({"name": "test_repo", "description": "Some test repo"})
c = pycurl.Curl()
c.setopt(pycurl.URL, github_url)
c.setopt(pycurl.USERPWD, user_pwd)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()

4. requests

import requests, json
github_url = "
data = json.dumps({'name':'test', 'description':'some test repo'}) 
r = requests.post(github_url, data, auth=('user', '*****'))
print r.json

以上几种方式都可以调用API来执行动作,但requests这种方式代码最简洁,最清晰,建议采用。

以上就是Python调用REST API接口的几种方式汇总的详细内容,更多关于Python调用REST API接口的资料请关注脚本之家其它相关文章!

相关文章

  • 解决Pandas的DataFrame输出截断和省略的问题

    解决Pandas的DataFrame输出截断和省略的问题

    今天小编就为大家分享一篇解决Pandas的DataFrame输出截断和省略的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python有序容器的 sort 方法详解

    Python有序容器的 sort 方法详解

    这篇文章主要介绍了Python有序容器的 sort 方法,容器.sort(key=选择排序依据的函数, reverse=True|False) 可以将有序容器进行排序,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • pandas object格式转float64格式的方法

    pandas object格式转float64格式的方法

    下面小编就为大家分享一篇pandas object格式转float64格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中的JSON Pickle Shelve模块特性与区别实例探究

    Python中的JSON Pickle Shelve模块特性与区别实例探究

    在Python中,处理数据序列化和持久化是极其重要的,JSON、Pickle和Shelve是三种常用的模块,它们提供了不同的方法来处理数据的序列化和持久化,本文将深入研究这三个模块,探讨它们的特性、用法以及各自的优缺点
    2024-01-01
  • Python环境配置实现pip加速过程解析

    Python环境配置实现pip加速过程解析

    这篇文章主要介绍了Python环境配置实现pip加速过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python中常用检测字符串相关函数汇总

    python中常用检测字符串相关函数汇总

    这篇文章主要介绍了python中常用检测字符串相关函数,实例汇总了Python针对字符串数字、字母、大小写等常用检测函数,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 18个Python入门经典必背的程序分享

    18个Python入门经典必背的程序分享

    这篇文章主要为大家介绍了Python入门经典必背的18个程序。注意:这是初学者要牢记的 18 个代码,入门之后就简单了,快跟随小编一起来学习一下吧
    2023-02-02
  • pyqt6实现关闭窗口前弹出确认框的示例代码

    pyqt6实现关闭窗口前弹出确认框的示例代码

    本文主要介绍了pyqt6实现关闭窗口前弹出确认框的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 基于Python实现成语填空游戏的示例代码

    基于Python实现成语填空游戏的示例代码

    成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象。当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出来是什么。本文就来用Python编写一个简单的成语填空游戏,感兴趣的可以了解下
    2023-02-02
  • 利用Python的Django框架生成PDF文件的教程

    利用Python的Django框架生成PDF文件的教程

    这篇文章主要介绍了利用Python的Django框架生成PDF文件的教程,用ReportLab API动态生成PDF文件,需要的朋友可以参考下
    2015-07-07

最新评论