доступ к элементам списка в python

#python #list

#python #Список

Вопрос:

 from pyzbar.pyzbar import ZBarSymbol
# Look for just qrcode
decode(Image.open('pyzbar/tests/qrcode.png'), symbols=[ZBarSymbol.QRCODE])
[
    Decoded(
        data=b'Thalassiodracon', type='QRCODE',
        rect=Rect(left=27, top=27, width=145, height=145),
        polygon=[
            Point(x=27, y=27), Point(x=27, y=172), Point(x=172, y=172),
            Point(x=172, y=27)
        ]
    )
]
 

Мне нужно только поле данных из функции decode.
Я новичок в python и программировании в целом, поэтому не могу понять, как это сделать.

 info=decode(img, symbols=[ZBarSymbol.QRCODE])
print(info)
 

При этом отображается весь список.

Комментарии:

1.убедитесь, что None всегда используется is оператор или is not operator , а не == оператор. я знаю, что это не относится к делу. что касается ускорения кода, возможно, вы мало что сможете сделать, если не изучите параметры библиотеки zbar. обратитесь к его документации. вероятно, вы можете ограничиться только QR-кодами, без других типов. вы можете проверить, выполняется ли декодирование QR-кода OpenCV быстрее

2. Я приношу извинения за полное изменение темы, я понял, что приведенный выше подход позволяет работать немного быстрее.

3. Вы пробовали decode(img, symbols=[ZBarSymbol.QRCODE])['data'] ?

4. (Ошибка типа: индексы списка должны быть целыми или фрагментами, а не str) получил эту ошибку.

5. @accdias, я приношу извинения за форматирование

Ответ №1:

decode возвращает список Decoded объектов.

Если вас интересует только первый объект, тогда info[0].data это сработает.

Комментарии:

1. как бы то ни было, результатом является ‘Thalassiodracon’ . мне нужен только необработанный текст без ». желаемый результат — Thalassiodracon

2. @HamzaShah b"Thalassiodracon".decode()