Solución a caracteres confusos en el análisis de datos cuando Python3 usa easysnmp para leer el dispositivo

Cuando se utiliza easysnmpel dispositivo de lectura, a veces aparecen caracteres confusos en el análisis de datos. Por ejemplo, si desea obtener VRIDel número del dispositivo, encontrará los siguientes caracteres confusos:

# !/usr/bin/env python3
# -*- coding: UTF-8 -*-

from easysnmp import snmp_walk


def get_vrid():
    vrid_data = snmp_walk(
        oids='1.3.6.1.2.1.68.1.3.1.2',
        hostname='you ip address',
        community='you device community',
        version=2
    )
    for vrid in vrid_data:
        print(f'vrid: {vrid} \t value:{vrid.value}')

inserte la descripción de la imagen aquí
La solución también es muy simple, simplemente snmpagregue use_sprint_value=Trueel parámetro al configurar.

	# !/usr/bin/env python3
	# -*- coding: UTF-8 -*-
	
	from easysnmp import snmp_walk
	
	
def get_vrid():
    vrid_data = snmp_walk(
        oids='1.3.6.1.2.1.68.1.3.1.2',
        hostname='you ip address',
        community='you device community',
        version=2,
        use_sprint_value=True # 设置 use_sprint_value 为 True
    )
    for vrid in vrid_data:
        print(f'vrid: {vrid} \t value:{vrid.value}')

inserte la descripción de la imagen aquí
Sin embargo, debe tenerse en cuenta que si use_sprint_valuese establece en True, snmpalgunos tipos de datos pueden devolverse en un formato no estándar y es posible que sprint_valuela biblioteca de funciones gety getnextel valor de retorno del método no formatee los datos.

Supongo que te gusta

Origin blog.csdn.net/yilovexing/article/details/126061119
Recomendado
Clasificación