pycurl只获得响应的一部分

时间:2012-07-04 09:06:33

标签: python json pycurl

我在python中使用pycurl向URL发出请求,该URL返回一个相当大的json格式的响应。当我在浏览器中转到URL时,我看到了整个内容,但是如果我使用pycurl并打印接收到的数据,我只看到浏览到URL时看到的大约一半,并且使用解析数据时出错json图书馆陈述:

  

ValueError:未终止的字符串,从第1行第16078行开始(char 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函数目前只是打印数据。

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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:0)

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

curl --help | less