我在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函数目前只是打印数据。
有人知道我为什么只得到部分回复吗?我已经使用了大量的超时只是为了试图解决这个问题,我最初没有指定任何超时但仍然出现此错误。
答案 0 :(得分:1)
,你可以设置它,
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