2012-07-04 3 views
2

python에서 pycurl을 사용하여 비교적 큰 json 형식의 응답을 반환하는 요청을 보내고 있습니다. URL을 브라우저로 이동하면 전체 내용을 볼 수 있지만 pycurl을 사용하여받은 데이터를 인쇄하면 URL을 탐색 할 때 볼 수있는 부분의 절반 만 볼 수 있으며 데이터를 구문 분석하는 중에 오류가 발생합니다. 알리는 JSON 라이브러리 :pycurl은 응답의 일부만을받습니다.

ValueError: Unterminated string starting at: line 1 column 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 기능은 현재 데이터 만 인쇄.

누구나 내가 왜 응답에만 참여하는지 알 수 있습니까? 이 문제를 해결하기 위해 막대한 시간 제한을 사용했지만 처음에는 시간 제한을 지정하지 않았지만이 오류가 계속 발생했습니다. 당신은 그 JSON 데이터에 접근을 시도 할 수

pycurl.SIZE_DOWNLOAD 
pycurl.REQUEST_SIZE 

답변

1

pycurl, 당신이 설정할 수,

import pycurl 
pycurl.CONTENT_LENGTH_DOWNLOAD 

작동 할 때까지

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

은 또한 다음을 시도 사용해보십시오 컬 도구.
데이터를 가져올 수있을 때 curl 옵션을 pycurl 옵션으로 변환하면됩니다.

curl --help | less 
0

을 :