问题描述
今晚我一直在尝试使示例代码在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')
我最近来的是为所有获取的URL打印类似以下的内容
- _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 (将#修改为@)