Пример потоковой передачи запросов не работает в моей среде

Я пытался использовать API потоковой передачи Twitter, используя запросы Python.

Там естьпростой пример в документации:

import requests
import json

r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
    data={'track': 'requests'}, auth=('username', 'password'))

for line in r.iter_lines():
    if line: # filter out keep-alive new lines
        print json.loads(line)

Когда я выполню это, вызовrequests.post() никогда не вернется. Я экспериментировал и доказал, что он определенно подключается к Twitter и получает данные от API. Однако вместо того, чтобы возвращать объект ответа, он просто сидит там и потребляет столько данных, сколько отправляет Twitter. Судя по приведенному выше коду, я бы ожидалrequests.post() вернуть объект ответа с открытым подключением к Твиттеру, по которому я мог бы продолжать получать результаты в реальном времени.

(Чтобы доказать, что он получает данные, я подключился к Twitter, используя те же учетные данные в другой оболочке, после чего Twitter закрыл первое соединение, и вызов вернул объект ответа.r.content Атрибут содержит все данные резервной копии, полученные при открытом соединении.)

В документации не упоминаются какие-либо другие шаги, необходимые дляrequests.post вернуть, прежде чем использовать все предоставленные данные. Другие люди, кажется, используют подобный код, не сталкиваясь с этой проблемой, например,Вот.

Я использую:

Python 2.7 Ubuntu 11.04 Requests 0.14.0

Ответы на вопрос(2)

Ваш ответ на вопрос