我是这里的新手,我想问一些有关删除重复数据输入的问题,现在我仍在做关于人脸识别的项目,并停留在删除重复数据输入中,然后发送给Google表格,这是我使用:
if(confidence <100):
id = names[id]
confidence = "{0}%".format (round(100-confidence))
row = (id,datetime.datetime,now().strftime('%Y-%m-%d %H:%M:%S'))
index = 2
sheet.insert_row (row,index)
data = sheet.get_all_records()
result = list(set(data))
print (result)
消息错误“无法散列的类型:'dict” 我只想输入一次就将结果发布到Google工作表中
答案 0 :(得分:2)
您无法将字典添加到集合中。
您可以 做的是将字典项添加到集合中。您可以像这样将其转换为元组列表:
s = set(tuple(data.items()))
如果之后需要将其转换回字典,则可以执行以下操作:
for t in s:
new_dict = dict(t)
答案 1 :(得分:0)
根据gspread
get_all_records()
的文档,返回 dict 的 list ,其中dict的头行为键,值为单元格值。因此,您需要遍历此列表,比较您的id
,以查找和删除重复项。示例代码:
visited = []
filtered = []
for row in data:
if row['id'] not in visited:
visited.append(row['id'])
else:
filtered.append(row)
现在,已过滤的项应包含唯一项。但是,您应该放置包含重复值的列的名称,而不是id
。