微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pycurl.multicurl-无法获取我的返回结果,只有对象内存地址

如何解决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')

我最近来的是为所有获取的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 举报,一经查实,本站将立刻删除。