【发布时间】:2018-07-17 08:28:48
【问题描述】:
我写在views.py
import os
import cv2
from pathlib import Path
path1 = Path(__file__).parent
path1 /= "../test1"
path2 = Path(__file__).parent
path2 /= "../test2"
index_list =[]
for i in path1.iterdir():
i = str(i)
if i.split(".")[-1].lower() in {"jpeg", "jpg", "png"}:
img = cv2.imread(i)
print(type(img)) #1
img = img.tolist()
print(type(img)) #2
if img is None:
print("Couldn't open file %s" % i)
else:
index_list.append(img)
index_list = sorted(set(index_list), key=index_list.index)
test1 & test2 文件夹有图片。
当我运行这段代码时,
TypeError: unhashable type: 'list' 错误
发生。 Traceback 说 Traceback(最近一次通话最后一次):
文件“views.py”,第 33 行,在 index_list = sorted(set(index_list), key=index_list.index) 。 #1 中的 print(type(img)) 显示,#2 中的 print(type(img)) 显示。 #2 中 print(type(img)) 的 img 有 [[[255, 255, 255], [255, 255, 255], [255, 255, 255] ・・・]]。
我认为这些值是列表嵌套导致此错误。但我无法理解如何修复这些数据。如何以相同的顺序将图像数据放入列表中?
【问题讨论】:
-
你不能散列一个列表。将其转换为元组
-
@ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000 谢谢你的cmets。我看不懂你的cmets。你能告诉我你想要的代码吗?
-
你不能在你的列表(index_list)上使用set函数