我正在编写一个脚本来查找重复的文件,我正在尝试使用'md5Checksum'但我报告了一个KeyError。你知道它是否真的有效吗?
感谢您的时间。
FILES = SERVICE.children().list(folderId='root',
q="mimeType='application/vnd.google-apps.document'"
).execute().get('items', [])
for item in FILES:
fi = SERVICE.files().get(fileId=item['id']).execute()
if fi['title'] == "Test":
print('The name is: %s and md5 is: %s' % (fi['title'], fi['md5Checksum']))
这是错误:
Traceback (most recent call last):
File "driveBlueberry_v2\check_md5.py", line 20, in <module>
print('The name is: %s and md5 is: %s' % (fi['title'], fi['md5Checksum']))
KeyError: 'md5Checksum'
答案 0 :(得分:0)
md5Checksum - string - 修订版内容的MD5校验和。这仅适用于Drive中具有二进制内容的文件。
因此,如果您的文档不包含二进制数据,则元数据中不会有md5Checksum字段。 Google Drives API V2明确表示没有填充Google文档:
md5Checksum - string - 此文件内容的MD5校验和。此字段仅填充内容存储在云端硬盘中的文件;它没有填充Google文档或快捷方式文件。
为什么他们在V3 API中删除了对Google文档的引用并不明显。无论哪种方式,很明显不会为每个文件填充md5Checksum字段,因此您应该使用以下内容:
if fi['title'] == "Test":
print('The name is: %s and md5 is: %s' % (fi['title'], fi.get('md5Checksum'))
如果没有填充字段,这可以避免抛出异常并按预期返回None
。