我想從一個網頁中的長JSON響應(〜75兆字節),但我只能接受第一個25兆字節左右。無法獲取整個頁面與Python要求
我用urllib2和python-requests但既不工作。我試過reading parts in separately和streaming the data,但這也不管用。
數據的例子可以在這裏找到:
http://waterservices.usgs.gov/nwis/iv/?site=14377100&format=json¶meterCd=00060&period=P260W
我的代碼如下:
r = requests.get("http://waterservices.usgs.gov/nwis/iv/?site=14377100&format=json¶meterCd=00060&period=P260W")
usgs_data = r.json() # script breaks here
# Save Longitude and Latitude of river
latitude = usgs_data["value"]["timeSeries"][0]["sourceInfo"]["geoLocation"]["geogLocation"]["latitude"]
longitude = usgs_data["value"]["timeSeries"][0]["sourceInfo"]["geoLocation"]["geogLocation"]["longitude"]
# dictionary of all past river flows in cubic feet per second
river_history = usgs_data['value']['timeSeries'][0]['values'][0]['value']
它打破了:
ValueError: Expecting object: line 1 column 13466329 (char 13466328)
當腳本嘗試解碼JSON(即usgs_data = r.json()
)。
這是因爲完整的數據還沒有被接收,因此不是一個有效的JSON對象。
有趣的是,它爲我工作,'r.json()'不會引發錯誤.. – alecxe
@alecxe它確實似乎偶爾爲我工作,其他時間是錯誤的。我猜這支持這樣的說法,即他們的服務器存在問題 – Ben