2

次のコードを使用して、ドライブの変更を確認しています。

    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'

しかし、ドキュメントを見ると、これはうまくいくはずだと私には見えますか?誰かが私が欠けているものを見つけることができますか?助けてくれてありがとう。

4

1 に答える 1

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"
于 2013-03-14T18:24:31.347 に答える