Python:请求模块使用Gevent抛出异常 [英] Python: requests module throws exception with Gevent

查看:497
本文介绍了Python:请求模块使用Gevent抛出异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码:

import gevent
import gevent.monkey
gevent.monkey.patch_socket()

import requests
import json

base_url = 'https://api.getclever.com'
section_url = base_url + '/v1.1/sections'

#get all sections
sections = requests.get(section_url, auth=('DEMO_KEY', '')).json()
urls = [base_url+data['uri']+'/students' for data in sections['data']]

#get students for each section
threads = [gevent.spawn(requests.get, url, auth=('DEMO_KEY', '')) for url in urls]
gevent.joinall(threads)
students = [thread.value for thread in threads]

#get number of students in each section
num_students = [len(student.json()['data']) for student in students]
print (sum(num_students)/len(num_students))

导致此错误:

Traceback (most recent call last):
  File "clever.py", line 12, in <module>
    sections = requests.get(section_url, auth=('DEMO_KEY', '')).json()
  File "/Library/Python/2.7/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 382, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 485, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 379, in send
    raise SSLError(e)
requests.exceptions.SSLError: [Errno 2] _ssl.c:503: The operation did not complete (read)

我在这里做错了什么?

推荐答案

这是一个类似的问题: [Errno 2] _ssl.c:504:操作未完成(读取)

Here's a similar question: [Errno 2] _ssl.c:504: The operation did not complete (read).

当你注释掉时

gevent.monkey.patch_socket()

或使用

gevent.monkey.patch_all()

或使用

gevent.monkey.patch_socket()
gevent.monkey.patch_ssl()

然后问题就消失了。

这篇关于Python:请求模块使用Gevent抛出异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆