Dans Google App Engine, j'essaie d'obtenir un enregistrement spécifique et le contenu associé. J'utilise le code suivant (pertinent) (tous GData nécessaire est importé et le client est authentifié):App Engine getRecord ne renvoyant pas le contenu
sclient = gdata.spreadsheet.text_db.DatabaseClient(username, password)
gdata.alt.appengine.run_on_appengine(sclient)
gdata.alt.appengine.run_on_appengine(sclient._GetDocsClient())
gdata.alt.appengine.run_on_appengine(sclient._GetSpreadsheetsClient())
ss = sclient.GetDatabases(spreadsheet_key="0AqKqcvXam_kcdFlfckZfVzRiaVpRelp2T1FsVl9rRHc")
processedSheet = ss[0].GetTables(worksheet_id=1)
targetTotals = processedSheet[0].GetRecord(row_number=1)
total1 = targetTotals.content["votea"]
Le problème est dans la dernière ligne. Il jette cette erreur:
AttributeError: 'NoneType' object has no attribute 'content'
J'ai regardé dans le code source pour le GData des feuilles de calcul text_db module et la ligne de retour dit ceci:
return Record(content=None, row_entry=row_feed.entry[0],
Ce qui signifie que la fonction par la conception ne renvoie pas le contenu ? Cela n'a pas beaucoup de sens. Suis-je en utilisant la mauvaise fonction. Ce que j'essaye d'accomplir est d'obtenir la valeur des cellules dans une rangée. Ma feuille de calcul (sur laquelle traite la feuille de calcul) a des en-têtes de colonne appelés "votea", "voteb", etc. La première ligne est un entier. Alors, des idées?
Etes-vous sûr que google-app-engine est le bon tag? Je ne vois aucune question google-app-engine ici. – systempuntoout
Il exécute son application sur App Engine, comme vous pouvez le voir sur les premières lignes (run_on_appengine). –
Le contenu doit être lu dans la méthode __init__ de la classe Record. Si le contenu est None, il appelle la méthode ExtractContentFromEntry qui initialise la propriété content. Jetez un coup d'oeil dans le même module text_db que vous regardiez déjà. –