У меня возникли проблемы с пониманием того, что происходит с моим кодом:
import json
from simple_salesforce import Salesforce, SalesforceLogin
fileCount = 1
saveFilesPath ='<path>/'
fileName = saveFilesPath+'test_file'+str(fileCount)+'.json'
sf = Salesforce(username='<username>', password='<password>', security_token='<token>', domain='test' )
initialQuery = sf.query("SELECT id, name, createddate, lastmodifieddate FROM surveyquestionresponse__c")
nextChunk = initialQuery['nextRecordsUrl']
nextQuery = sf.query_more(nextChunk, True)
print(nextChunk)
print(nextQuery['nextRecordsUrl'])
#with open(fileName, 'w') as outfile :
# json.dump(initialQuery['records'],outfile)
#while nextQuery['nextRecordsUrl'] is not None :
# fileCount += 1
# fileName = saveFilesPath+'test_file'+str(fileCount)+'.json'
# print(nextQuery['nextRecordsUrl'])
# with open(fileName, 'w') as outfile :
# json.dump(nextQuery['records'], outfile)
С этим происходят две вещи.Во-первых, первоначальный запрос выдает /services/data/v38.0/query/01gf000000gFYRwAAO-2000 для URL следующих записей, но затем nextQuery дает /services/data/v38.0/query/01gf000000gFYRwAAO-4000, что странночто он меняет количество чанков.
Другая вещь, которая происходит, заключается в том, что следующий чанк никогда не заканчивается.В указанном объекте содержится около 95 тысяч строк, поэтому теоретически он должен выдавать около 25 файлов при 4000 или 48 файлов при 2000 году. Я не могу использовать Query_All из-за ограничений памяти в лямбда-выражении на AWS и размера некоторыхмои объекты, поэтому я должен писать файлы по частям.Как я могу заставить этот кусок кода функционировать должным образом?