Como você lê arquivos do Excel com xlrd no Appengine

Estou usando o xlrd no appengine. Eu uso balão

Eu não consigo ler o arquivo de entrada e ele continua mostrando a mesma mensagem de erro

o código é

<code>def read_rows(inputfile):
    rows = []
    wb = xlrd.open_workbook(inputfile)
    sh = wb.sheet_by_index(0)
    for rownum in range(sh.nrows):
        rows.append(sh.row_values(rownum))
    return rows

@app.route('/process_input/',methods=['POST','GET'])
def process_input():
  inputfile = request.files['file']
  rows=read_rows(request.files['file'])
  payload = json.dumps(dict(rows=rows))
  return payload
</code>

Eu percebo que isso pode ser causado por não fazer o upload e salvá-lo como um arquivo. Alguma solução alternativa para isso? Isso ajudaria muitos outros também. Qualquer ajuda é apreciada, thx

Atualização: Encontrei uma solução que postei abaixo. Para aqueles confusos com o uso de xlrd pode se referir ao repositório de projetos de código aberto que eu postei. A chave está passando o conteúdo do arquivo em vez do nome do arquivo

questionAnswers(3)

yourAnswerToTheQuestion