我正在尝试发出一个API请求,拉下响应的特定块,并最终将其保存到一个文件中以供以后处理。我还想首先提到的是,在我开始提取更大的数据集之前,该脚本可以完全工作。当我将参数设置为更大的日期范围时,收到: ContentTypeError( aiohttp.client_exceptions.ContentTypeError: 0,message=‘尝试使用意外的mimetype: text/html解码JSON’
async def get_dataset(session, url):
async with session.get(url=url, headers=headers, params=params) as resp:
dataset = await resp.json()
return dataset['time_entries']
async def main():
tasks = []
async with aiohttp.ClientSession() as session:
for page in range(1, total_pages):
url = "https://api.harvestapp.com/v2/time_entries?page=" + str(page)
tasks.append(asyncio.ensure_future(get_dataset(session, url)))
dataset = await asyncio.gather(*tasks)
如果我保持我的参数足够小,那么它就可以正常工作。但是如果日期范围太大,则会弹出错误,并且任何超出我上面共享的代码片段的内容都不会运行更多的内容以供参考:
url_address = "https://api.harvestapp.com/v2/time_entries/"
headers = {
"Content-Type": 'application/json',
"Authorization": authToken,
"Harvest-Account-ID": accountID
}
params = {
"from": StartDate,
"to": EndDate
}
有什么想法会导致这种方法在某些数据大小上有效,但在更大的数据集上失败?我假设JSON在某个时候会变得畸形,但我不确定如何检查和/或防止它发生,因为我能够从API中提取多个页面,并成功地附加到较小的数据提取中。
转载请注明出处:http://www.shandongyidao.com/article/20230526/2091285.html