2016-07-29 8 views
0

Ich versuche, die gesamte Zellgeschichte eines bestimmten Blattes zu greifen und es zu einem CSV auszuspucken. Der Code funktioniert auf einem Blatt, aber nicht auf einem anderen. Wenn ich zum Revisionsteil des Codes komme, erhalte ich eine Reihe von Attributfehlern. Der folgende Code befindet sich im Innersten einer Funktion, die durch die Zellen eines Blattes läuft.Smartsheet Error Objects - Attribut Fehler

Fehler liest 'Error' object has no attribute 'data'

Der seltsamste Teil ist, dass die Fehler nicht konsequent gefunden. Wenn Sie das gleiche Blatt durchlaufen, wird der Fehler durch verschiedene Zellen ausgelöst, als wenn ich das Skript das letzte Mal ausgeführt habe. Ich erhalte den Attributfehler, aber das löst das Problem nicht wirklich. Hilfe?

  #get the cell history 
      action = smartsheet.Cells.get_cell_history(
       sheetid, 
       row.id, 
       columns[c].id, 
       #include_all=True 
       ) 

      try: 
       revisions = action.data 

      except AttributeError as inst: 
       print('found Attribute error in this cell:') 
       print(inst) 

Antwort

0

Dies ist wahrscheinlich, weil die Zelle keine Geschichte hat. Sie müssen eine Sicherheitsprüfung durchführen, um sicherzustellen, dass das Attribut existiert, bevor Sie darauf zugreifen.

Möglicherweise rufen Sie die API zu schnell ab, weshalb manchmal Werte nicht zurückgegeben werden. Von der API documentation:

Dies ist eine ressourcenintensive Operation, und es entstehen 10 zusätzliche Anforderungen gegen das Ratenlimit.

Stellen Sie sicher, dass Sie alle zurückgegebenen Fehler ordnungsgemäß bearbeiten, um festzustellen, ob dies der Fall ist.