2013-03-14 23 views
2

我檢查驅動器,使用下面的代碼更改:谷歌驅動器SDK - 改變()鍵錯誤

deltaDict = drive_service.changes().list(includeDeleted = True, startChangeId = driveRC.deltaCursor).execute() 
    if not str(driveRC.deltaCursor) == str(deltaDict['largestChangeId']): 
     print '*** Change Detected ***' 
     fileItems = deltaDict['items'] 
     for item in fileItems: 
      isDeleted = item['deleted'] 
      theFile = item['file'] 
      fileID = theFile['id'] 
      fileLabels = theFile['labels'] 
      fileName = theFile['title'] 
      isTrashed = fileLabels['trashed'] 

,這是一段時間工作的罰款。目前然而,我看到的錯誤:

theFile = item['file'] 
    KeyError: 'file' 

但看着the documentation這看起來對我來說,它應該工作?任何人都可以發現我錯過的東西嗎? 在此先感謝您的幫助。

回答

2

根據文檔,item['file']僅在文件未被刪除時才存在,因此只有在item['deleted']爲False或至少將其包含在try/except塊中時才能使用它。

for item in fileItems: 
    isDeleted = item['deleted'] 
    try: 
     theFile = item['file'] 
     # Rest of your code 
    except KeyError: 
     print "Item deleted" 
+0

啊我看到了,錯過了,改變了它,現在工作正常。歡呼的幫助 – Cian 2013-03-14 18:33:36

+0

@mrbirl不客氣,很高興它幫助。 – 2013-03-14 18:35:48