如何解决pycurl.multicurl-无法获取我的返回结果,只有对象内存地址
今晚我一直在尝试使示例代码在https://fragmentsofcode.wordpress.com/2011/01/22/pycurl-curlmulti-example/下工作,这让我感到困惑(不难)。
m = pycurl.CurlMulti()
for url in urllist:
response = io.StringIO()
handle = pycurl.Curl()
handle.setopt(pycurl.URL,url)
handle.setopt(pycurl.WRITEDATA,response)
req = (url,response)
m.add_handle(handle)
reqs.append(req)
# Perform multi-request.
# This code copied from pycurl docs,modified to explicitly
# set num_handles before the outer while loop.
SELECT_TIMEOUT = 1.0
num_handles = len(reqs)
while num_handles:
ret = m.select(SELECT_TIMEOUT)
if ret == -1:
continue
while 1:
ret,num_handles = m.perform()
if ret != pycurl.E_CALL_MULTI_PERFORM:
break
for req in reqs:
# req[1].getvalue() contains response content
print(req[1].getvalue())
我尝试了以下打印
- req [1]
- req [1] .getvalue()
- req [1] .getvalue()。decode('ISO-8859-1')
- _io.StringIO对象位于0x7f19f931d9d8
我也尝试过使用io.BytesIO获得相同的结果。
代码中的注释来自原始作者,我更改了一些我认为与版本有关的小事情,并删除了相关注释。
如何在该内存地址而不是仅在该地址处打印对象的内容?
编辑: print(req [1] .getvalue())引发以下错误
print(req [1] .getalue()) AttributeError:'_io.BytesIO'对象没有属性'getalue
所以我把它压成这样的变量
temp = req [1] .getvalue() 打印(温度)
,它只是返回带有单引号的b,如下所示: b''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。