我在选择数组中一个对象的一个属性时遇到了问题。这是一个数组(我尝试用pickle发送这个,但我不能使用):
items = []
results = service.files().list(corpora="drive",driveId=map_project_ids[project],pageSize=1000, pageToken=pageToken,supportsAllDrives=True,includeItemsFromAllDrives=True,q="mimeType = 'application/vnd.google-apps.folder'",fields="nextPageToken, files(id,createdTime,name,parents)").execute()
items.extend(results.get('files', []))
pickle.dump(items,open(f"results_{PROJECT}.pkl","wb"))
后得到此数据形式谷歌驱动器(76k文件夹),我需要发送一个具体的信息,如id,家长,和创建时间的一个文件夹在数组中.
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、parent和createdTime到数据库中的存储?
我用的是Google Colab。
我试着:
for i in items:
salvarDB (i.parents, i.id, i.createdTime)
2条答案
按热度按时间5q4ezhmt1#
前面代码的问题是,您试图使用点表示法(
i.parents
,i.id
,i.createdTime
)访问每个项的属性,就好像数组中的项是objects
一样。但是,数组中的项是字典,字典键使用方括号([]
)而不是点表示法访问。试试这个代码
cbeh67ev2#
看看
itemgetter
。通过将所需的键传递给它,它返回一个可调用对象,该对象可以应用于可迭代对象。PS它与列表,元组,...也是。