如何从Google Drive对象数组提取指定属性存入数据库(Google Colab)
问题解决:从Drive API返回的字典数组提取字段存入数据库
我在Google Colab中通过Google Drive API获取了76000个文件夹的数据,存储为items数组,数组结构示例如下:
[ { 'parents': ['1H7cY0cncy5fXt7of0xxN3jdTmzk'], 'id': '1UDqOjxiZFPdY3goFPSecc53xOW4', 'name': '20620', 'createdTime': '2023-06-19T15:51:15.280Z' }, { 'parents': ['1kq6FBSvhIZqyQASntqOmL6AQEak'], 'id': '1CPDgaPOF3Kg4Ds26GpyxuJblQ3', 'name': '230620', 'createdTime': '2023-06-19T15:51:02.397Z' } ]
需要提取每个元素中的id、parents和createdTime字段存入数据库,尝试了以下代码但无法实现:
for i in items: salvarDB (i.parents, i.id, i.createdTime)
解决方法
代码无法运行的核心原因是:items数组中的元素是Python字典,不是自定义类的实例,不能用对象属性的访问方式(.)来取值,必须用字典的键访问语法([])。
修正后的代码:
for i in items: salvarDB(i['parents'], i['id'], i['createdTime'])
额外优化建议
- 容错处理:如果存在部分字段缺失的情况,建议用
dict.get()方法避免KeyError,示例:for i in items: parents = i.get('parents', []) # 字段不存在时返回空列表 folder_id = i.get('id', '') created_time = i.get('createdTime', '') salvarDB(parents, folder_id, created_time) - 批量插入提升效率:处理76000条数据时,单条循环插入会非常慢,建议攒够一定数量的记录(比如1000条)后批量插入数据库,能大幅减少数据库连接开销,具体实现可参考你使用的数据库驱动文档。
内容的提问来源于stack exchange,提问作者Aloysio
相关产品推荐
相关产品推荐

