[英]“TypeError: list indices must be integers or slices, not str”
[英]TypeError: list indices must be integers or slices, not str (copy)
我是 python 的新用戶,感謝您的幫助。
我訓練了 yolov5 模式來檢測“僵屍”和“幽靈”
model = torch.hub.load('yolov5', 'custom', source='local', path='yolov5/runs/train/exp2/weights/best.pt')
while True:
screen = pyautogui.screenshot(region=(0,535, 1900, 475))
corrected_colors = cv2.cvtColor(screen_array, cv2.COLOR_RGB2BGR)
results = model(corrected_colors)
cv2.imshow('YOLO', np.squeeze(results.render()))
if cv2.waitKey(1) & 0xFF==ord('q'):
break
cv2.destroyAllWindows()
這是我第一次
但我需要左鍵點擊僵屍
time.sleep(2)
while True:
screen = pyautogui.screenshot(region=(0,535, 1900, 475))
screen_array = np.array(screen)
corrected_colors = cv2.cvtColor(screen_array, cv2.COLOR_RGB2BGR)
results = model(corrected_colors)
df = results.pandas().xyxy
df = df[df['class'] == 0]
if df.empty:
pass
else:
if df.iloc[0]['confidence'] > 0.60:
xmin, ymin, xmax, ymax = df.iloc[0]['xmin'], df.iloc[0]['ymin'], df.iloc[0]['xmax'], df.iloc[0]['ymax']
center_x = int((xmin + xmax) / 2)
center_y = int((ymin + ymax) / 2)
pyautogui.click(center_x, center_y)
cv2.imshow('YOLO', np.squeeze(results.render()))
if cv2.waitKey(1) & 0xFF==ord('q'):
break
cv2.destroyAllWindows()
但我有這個錯誤
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[30], line 11
8 results = model(corrected_colors)
10 df = results.pandas().xyxy
---> 11 df = df[df['class'] == 0]
13 if df.empty:
14 pass
TypeError: list indices must be integers or slices, not str
有人可以給我建議嗎? 提前致謝
可以通過 integer 值的索引訪問列表中的元素Python - 數據結構 - 列表了解此錯誤原因的示例如下,
a = ['{"id":9,"name":"Foo"}']
print(a['id'])
它會拋出類型錯誤。
通過使用 integer 索引訪問列表元素的恰當方式,
a = ['{"id":9,"name":"Foo"}']
print(a[0])
上面代碼為Output如下,
{"id":9,"name":"Foo"}
如果您有如下定義的字典列表,訪問列表中元素的適當方法如下,
a = [{"id":9,"name":"Foo"}]
print(a[0]['id])
這將給出 output 值 '9'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.