Update: I put in a support ticket and there is an existing bug:
BUG-000119057 : The Python API 1.5.2 generate_report method of the arcgis.apps.survey123 module, generates the following error: KeyError: 'results'
I was playing with a workaround, where you basically just search for the generated reports in your organization and download them. I also delete them after downloading them so future runs wouldn't re-download them.
#this script generates the KeyError: 'results' but still works
from arcgis.gis import GIS
import os
from zipfile import ZipFile
from arcgis.apps.survey123._survey import SurveyManager, Survey
gis = GIS("https://YOURORGANIZATION.maps.arcgis.com","USERNAME","PASSWORD") #fill in 3 strings here
survey_mgr = SurveyManager(gis)
letslearn = survey_mgr.get("id for survey form item in AGO") #fill in 1 string here
print(letslearn.report_templates) #see all available print templates for this survey
choice = letslearn.report_templates[0] #the print template you want to use (0 = first); fill in 1 number here
print(choice)
#example syntax for generate report for some features: letslearn.generate_report(choice, {"where":"fieldname='fieldvalueyouwant'"})
letslearn.generate_report(choice, "1=1") #generates report for all features
#print(letslearn.reports)
for x in letslearn.reports: #finds all Microsoft Word doc files in AGO with you as their owner and "Survey 123" in the tags. Could upload a Word document that wasn't a generated report, add that tag, and it would be found with this
#print(x.description) remove "#" if you want to see them listed
if x.description: #if it exists.. (some of my old generated reports had null descriptions)
if 'id for survey form item in AGO' in x.description: #fill in 1 string here
id = x.id #get id of that Word doc
data_item = gis.content.get(id) #get Word doc as an item from AGO
data_item.download(save_path = r'C:\where\ever\you\want\it') #fill in 1 string here; downloads that Word doc
data_item.delete() #deletes that Word doc in AGO