Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不易损坏类型:';dict';_Python_Raspberry Pi - Fatal编程技术网

Python 不易损坏类型:';dict';

Python 不易损坏类型:';dict';,python,raspberry-pi,Python,Raspberry Pi,我是新来这里的,想问一些关于删除重复数据输入的问题,现在我仍在做我的关于人脸识别的项目,并被困在我发送到google sheets的删除重复数据输入中,这是我使用的代码: if(confidence <100): id = names[id] confidence = "{0}%".format (round(100-confidence)) row = (id,datetime.datetime,now().strftime('%Y-%m-%d %H:%M:%S'

我是新来这里的,想问一些关于删除重复数据输入的问题,现在我仍在做我的关于人脸识别的项目,并被困在我发送到google sheets的删除重复数据输入中,这是我使用的代码:

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)

if(confidence无法将字典添加到集合中

您可以将字典项添加到集合中。您可以将其转换为元组列表,如下所示:

s = set(tuple(data.items()))
如果需要在之后将其转换回字典,可以执行以下操作:

for t in s:
    new_dict = dict(t)

不能向集合中添加词典

您可以将字典项添加到集合中。您可以将其转换为元组列表,如下所示:

s = set(tuple(data.items()))
如果需要在之后将其转换回字典,可以执行以下操作:

for t in s:
    new_dict = dict(t)

根据
gspread
get_all_records()
的文档,返回dicts列表,其中dict的头行作为键,值作为单元格值。因此,您需要遍历此列表,比较您的
id
以查找并删除重复项。示例代码:

visited = []
filtered = []
for row in data:
    if row['id'] not in visited:
        visited.append(row['id'])
    else:
        filtered.append(row)

现在,筛选后的内容应该包含唯一的项。但是,您应该输入包含重复值的列的名称,而不是
id

根据
gspread
获取所有记录()
返回dict的列表,其中dict的头行作为键,值作为单元格值。因此,您需要遍历此列表,比较您的
id
以查找并删除重复项。示例代码:

visited = []
filtered = []
for row in data:
    if row['id'] not in visited:
        visited.append(row['id'])
    else:
        filtered.append(row)

现在,filtered应该包含唯一的项。但是,您应该输入包含重复值的列的名称,而不是
id

您不能将字典添加到集合中。您不能将字典添加到集合中。我使用命令“s=set(tuple(data.items())”,出现了一个新错误。消息“AttributeError:“list”对象没有属性“items”是列表还是字典?数据是列表,我想删除变量数据中输入的重复数据,如果
data
是列表,那么不应该出现“Unhable type:“dict”错误。您可以直接从列表构造一个集合:
s=set(data)
。您的代码中是否有一部分没有包含?如果data=dictionary,为什么会出现错误“objec没有属性项”?我已经使用命令“s=set(tuple(data.items())”添加了元组,则会出现新错误。消息“AttributeError:“list”对象没有属性“items”是列表还是字典?数据是列表,我想删除变量数据中输入的重复数据,如果
data
是列表,那么不应该出现“Unhable type:“dict”错误。您可以直接从列表构造一个集合:
s=set(data)
。您的代码中是否有一部分没有包含?如果data=dictionary,为什么会出现错误“objec没有属性项”?我已经添加了tupleso,我需要先将发送到google sheets的数据保存到empy variable?@RoyNvn你是什么意思?在我所附的代码中,迭代列表并只向其添加唯一的项,所以我需要先将发送到google sheets的数据保存到empy variable?@RoyNvn你是什么意思?在代码中,我在tached遍历列表并仅向其中添加唯一的项