【发布时间】:2023-11-12 10:04:01
【问题描述】:
我正在尝试从网页获取较长的 JSON 响应(约 75 MB),但是我只能收到前 25 MB 左右。
我使用过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 它似乎偶尔对我有用,其他时候是错误的。我想这支持了他们的服务器有问题的说法
标签: python http python-requests urllib2