2

我在 python 中使用 pycurl 向返回相当大的 json 格式响应的 URL 发出请求。当我在浏览器中转到 URL 时,我看到了全部内容,但如果我使用 pycurl 并打印接收到的数据,我只能看到浏览到 URL 时看到的内容的一半左右,并且使用解析数据时出现错误json库说明:

ValueError:未终止的字符串开始于:第 1 行第 16078 列(字符 16078)

pycurl 请求是这样的:

conn = pycurl.Curl()
conn.setopt(pycurl.URL, myUrl)
conn.setopt(pycurl.WRITEFUNCTION, on_receive)
conn.setopt(pycurl.CONNECTTIMEOUT, 30)
conn.setopt(pycurl.TIMEOUT, 30)
conn.setopt(pycurl.NOSIGNAL, 10)
conn.perform()

on_receive 函数目前只是打印数据。

有人知道为什么我只得到部分回复吗?我使用大量超时只是为了解决这个问题,我最初没有指定任何超时,但仍然收到此错误。

4

2 回答 2

1

在 pycurl 中,你可以设置这个,

import pycurl
pycurl.CONTENT_LENGTH_DOWNLOAD 

尝试使用

import Curl, pycurl
con = Curl()
con.set_option(pycurl.CONTENT_LENGTH_DOWNLOAD, 9999999999)
con.get('url' ....

还可以尝试以下操作,直到它起作用:

pycurl.SIZE_DOWNLOAD
pycurl.REQUEST_SIZE 
于 2012-07-04T09:18:42.367 回答
0

您可以尝试使用 curl 工具访问这些 json 数据。
当您能够获取数据时,只需将 curl 选项转换为 pycurl 选项。

curl --help | less 
于 2013-10-30T21:11:38.207 回答