-3

我很惊讶在检查字典中的某个值时出现错误,如下所示:

if src in mac_dict:

我已经像这样填写了我的字典:

data = database.get(mac, "get_nodelist", version=1)
if data:
    fh = StringIO(data)
    version = ord(fh.read(1))
    length = ord2b(fh.read(2))
    length = length / 8
    macs = {}
    for i in xrange(0,length):
        mac = fh.read(6)[-3:]
        tdm = ord2b(fh.read(2))
        macs[mac] = tdm
        print hexlify(mac) + " - " + str(tdm)
    fh.close()
    fh = open("macs.bin","wb")
    pickle.dump(macs,fh)
    fh.close()
    return macs

data 在 sa 行中包含 6 个字节的 mac 地址加上 2 个字节的 tdm。它们似乎已使用 print 语句正确解码,但是当我想检查 src(二进制)是否是 mac_dict 的一部分时,我的脚本会引发异常 - 即使我绝对应该在那里......任何提示?

谢谢!罗恩

4

1 回答 1

1

您需要执行此操作以检查是否存在值:

if src in mac_dict.values():

您的代码正在做的是检查 src 是否已被用作键。字典类也有一个等价的方法:

if mac_dict.has_key(src):
于 2012-11-06T20:26:10.730 回答