我试图阅读Twitter流媒体API的输出,但我遇到了一些麻烦。到目前为止,这是我的代码:
from urllib2 import *
import StringIO
password_mgr = HTTPPasswordMgrWithDefaultRealm()
url = "https://stream.twitter.com/1/statuses/sample.json"
password_mgr.add_password(None, url, 'myusername', 'mypassword')
h = HTTPBasicAuthHandler(password_mgr)
opener = build_opener(h)
page = opener.open(url)
io = StringIO(page.read())
print io.getvalue()
io.close()
我最初只使用page.read()
,但导致我的控制台只是继续打印流并且不会返回代码。我现在正在尝试使用StringIO像流一样处理它并逐步打印出来,但是当我这样做时,我什么也得不到,这个过程就成立了。有更好的方法吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
请阅读流请求¶
https://requests.kennethreitz.org/en/master/user/advanced/#streaming-requests
import json
import requests
r = requests.get('https://httpbin.org/stream/20', stream=True)
if r.encoding is None:
r.encoding = 'utf-8'
for line in r.iter_lines(decode_unicode=True):
if line:
print(json.loads(line))