2

かなり大きなjson形式の応答を返すURLにpycurlを使用してPythonでリクエストを作成しています。ブラウザで 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 に答える