От the page where this code seems to be from:
Значение поля объекта ответа будет содержать список кортежей, где каждый кортеж содержит код неисправности, и описание строки этого DTC (если таковые имеются).
Так что если r = connection.query(obd.commands.GET_DTC)
, то r.value
- это «список кортежей». Вы можете использовать zip() функцию (как описано в this question) транспонировать структуру с zip(*r.value)
, которая дает
[('P0030', 'P1367'), ('HO2S Heater Control Circuit', 'Unknown error code')]
Вы просто хотите, второй элемент этого списка, так
zip(*r.value)[1]
дает кортеж
('HO2S Heater Control Circuit', 'Unknown error code')
Тогда вы можете использовать это как пожелаете. Обратите внимание, что это дает вам все «вторых значений в каждом выводимом элементе». Можно перебирать всех них (и, скажем печать каждого из них) с:
for description in zip(*r.value)[1]:
print description
Это может быть хорошей идеей, чтобы присвоить zip(*r.value)[1]
переменной, если вы хотите использовать его более чем один раз.
Что значит «как его собственная переменная»? Вы хотите сгладить «список»? Или вы спрашиваете, как получить доступ к вложенным элементам? Или вам просто нужны переработанные контейнеры? Пожалуйста, будьте более конкретными. – TigerhawkT3
Что-то вроде: 'first, second = r.value [0]'? – Bakuriu