【问题标题】:How can i execute the following code using pycurl [closed]我如何使用pycurl执行以下代码[关闭]
【发布时间】:2015-06-06 01:11:42
【问题描述】:
curl https://api.smartsheet.com/1.1/sheets -H "Authorization: Bearer 26lhbngfsybdayabz6afrc6dcd" -H "Content-Type: application/json" -X POST -d @test.json

【问题讨论】:

标签: python pycurl


【解决方案1】:

如果您是编码新手,请不要使用pycurl,它通常被认为已过时。而是使用requests,可以使用pip install requests 安装。

下面是如何使用requests 进行等效操作:

import requests

with open('test.json') as data:
    headers = {'Authorization': 'Bearer 26lhbngfsybdayabz6afrc6dcd'
               'Content-Type' : 'application/json'}
    r = requests.post('https://api.smartsheet.com/1.1/sheets', headers=headers, data=data)
print r.json

如果一定要用pycurl,建议你先用reading here。通常它会通过这个(未经测试的)代码来完成:

import pycurl

with open('test.json') as json:
    data = json.read()

    c = pycurl.Curl()
    c.setopt(pycurl.URL, 'https://api.smartsheet.com/1.1/sheets')
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.POSTFIELDS, data)
    c.setopt(pycurl.HTTPHEADER, ['Authorization: Bearer 26lhbngfsybdayabz6afrc6dcd',
                                 'Content-Type: application/json'])
    c.perform()

这表明requests 更加优雅。

【讨论】:

  • 实际上它并没有真正过时。 pycurl 也快得多:stackoverflow.com/a/32899936/1515686
  • @Tom-OliverHeidel:这很有趣。 通常已过时我的意思是在某些特殊情况下可能会使用它,但在一般情况下,对于初学者来说,requests 使用起来要好得多(而且更快),我不推荐pycurl,除非有明显的需要使用它。
  • 是的,你完全正确。我实际上更喜欢请求而不是 pycurl。老实说,pycurl 可能需要一些更好的文档。
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多