Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pysnmp中使用JSON_Python_Pysnmp - Fatal编程技术网

Python 如何在pysnmp中使用JSON

Python 如何在pysnmp中使用JSON,python,pysnmp,Python,Pysnmp,嗨,我在寻找一种在pysnmp中使用json作为OID数组的方法 当前我的inout数据如下所示: ( # 1-st target (SNMPv1 over IPv4/UDP) ( cmdgen.CommunityData('public', mpModel=0), cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)), ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDe

嗨,我在寻找一种在pysnmp中使用json作为OID数组的方法 当前我的inout数据如下所示:

(
    # 1-st target (SNMPv1 over IPv4/UDP)
    ( cmdgen.CommunityData('public', mpModel=0),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 2-nd target (SNMPv2c over IPv4/UDP)
    ( cmdgen.CommunityData('public'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 3-nd target (SNMPv3 over IPv4/UDP)
    ( cmdgen.UsmUserData('usr-md5-des', 'authkey1', 'privkey1'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 4-th target (SN MPv3 over IPv6/UDP)
    ( cmdgen.UsmUserData('usr-md5-none', 'authkey1'),
      cmdgen.Udp6TransportTarget(('::1', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # N-th target
    # ...
)
for authData, transportTarget, varNames in targets:
    acmdGen.getCmd(
        authData, transportTarget, varNames,
        # User-space callback function and its context
        (cbFun, (authData, transportTarget)),
        lookupNames=True, lookupValues=True
    )
我这样称呼它:

(
    # 1-st target (SNMPv1 over IPv4/UDP)
    ( cmdgen.CommunityData('public', mpModel=0),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 2-nd target (SNMPv2c over IPv4/UDP)
    ( cmdgen.CommunityData('public'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 3-nd target (SNMPv3 over IPv4/UDP)
    ( cmdgen.UsmUserData('usr-md5-des', 'authkey1', 'privkey1'),
      cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # 4-th target (SN MPv3 over IPv6/UDP)
    ( cmdgen.UsmUserData('usr-md5-none', 'authkey1'),
      cmdgen.Udp6TransportTarget(('::1', 161)),
      ( cmdgen.MibVariable('SNMPv2-MIB', 'sysDescr', 0),
        cmdgen.MibVariable('SNMPv2-MIB', 'sysLocation', 0) ) ),
    # N-th target
    # ...
)
for authData, transportTarget, varNames in targets:
    acmdGen.getCmd(
        authData, transportTarget, varNames,
        # User-space callback function and its context
        (cbFun, (authData, transportTarget)),
        lookupNames=True, lookupValues=True
    )

如果有人能提供一个示例,那就太好了。

我没有任何snmp经验,但我在python中使用过json。你能澄清一下吗?是否要存储上面数组的所有实例化的返回?包含所有cmdgen.Object内容的一个。还是要将该数组本身作为json?我想使用json对象而不是第一个代码段,第一个代码段定义将在第二个代码段中使用的snmp信息。在python dict上使用json对象的原因是什么?您是否正在尝试将某些数据扁平化或与其他语言或其他东西共享?JSON中的所有内容都是一个字符串,因此要创建JSON python对象需要额外的努力。您可以创建一个JSON对象,并使用它查找实例化cmdgend.Objects时使用的参数。那会有帮助吗?我仍然有点困惑:node.js中有IPC。我在那里有一个JSON数据,我更喜欢按原样使用它,而不是将它转换成其他东西。现在清楚了吗