小编Sté*_*ane的帖子

处理多个 KeyError 异常的更优雅的方法

我有以下函数,它读取 adict并影响局部变量的一些值,然后将其作为元组返回。

问题是字典中可能不存在某些所需的键。

到目前为止,我已经有了这段代码,它可以实现我想要的功能,但我想知道是否有更优雅的方法来实现它。

def getNetwork(self, search):

    data = self.get('ip',search)
    handle         = data['handle']
    name           = data['name']
    try:
        country        = data['country']     
    except KeyError:
        country = ''
    try:       
        type           = data['type']
    except KeyError:
        type = ''
    try:                
        start_addr     = data['startAddress']
    except KeyError:
        start_addr = ''
    try:                 
        end_addr       = data['endAddress']
    except KeyError:
        end_addr = '' 
    try:                  
        parent_handle  = data['parentHandle']
    except KeyError:
        parent_handle = ''   
    return (handle, name, country, type, start_addr, end_addr, parent_handle)
Run Code Online (Sandbox Code Playgroud)

我有点害怕很多,try: except:但如果我把所有的影响都放在一个单一的里面,try: except:一旦第一个缺失的字典键引发错误,它就会停止影响值。

python json python-3.x rdap

4
推荐指数
1
解决办法
2538
查看次数

使用 PySNMP 的 snmpwalk

我想重现以下 SNMP 命令的行为:

snmpwalk -v2c -cpublic 192.168.0.10 1.3.6.1.2.1.25.2.3.1.3
Run Code Online (Sandbox Code Playgroud)

这给了我这个输出:

iso.3.6.1.2.1.25.2.3.1.3.1 = STRING: "Physical memory"
iso.3.6.1.2.1.25.2.3.1.3.3 = STRING: "Virtual memory"
iso.3.6.1.2.1.25.2.3.1.3.6 = STRING: "Memory buffers"
iso.3.6.1.2.1.25.2.3.1.3.7 = STRING: "Cached memory"
iso.3.6.1.2.1.25.2.3.1.3.8 = STRING: "Shared memory"
iso.3.6.1.2.1.25.2.3.1.3.10 = STRING: "Swap space"
iso.3.6.1.2.1.25.2.3.1.3.31 = STRING: "/"
iso.3.6.1.2.1.25.2.3.1.3.37 = STRING: "/run"
iso.3.6.1.2.1.25.2.3.1.3.39 = STRING: "/dev/shm"
iso.3.6.1.2.1.25.2.3.1.3.40 = STRING: "/run/lock"
iso.3.6.1.2.1.25.2.3.1.3.41 = STRING: "/sys/fs/cgroup"
iso.3.6.1.2.1.25.2.3.1.3.59 = STRING: "/tmp"
iso.3.6.1.2.1.25.2.3.1.3.60 = STRING: "/run/cgmanager/fs"
iso.3.6.1.2.1.25.2.3.1.3.61 = STRING: "/run/user/112"
iso.3.6.1.2.1.25.2.3.1.3.63 = STRING: "/run/user/0"
Run Code Online (Sandbox Code Playgroud)

所以我尝试了这个代码:

#!/usr/bin/env python3
from pysnmp.hlapi …
Run Code Online (Sandbox Code Playgroud)

snmp python-3.x pysnmp

4
推荐指数
1
解决办法
1万
查看次数

为文本输入设置空值

我有以下JS:

\n\n
document.getElementById(\'sketchpad-post\').setAttribute(\'value\',\'\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

HTML 输入如下:

\n\n
<input type="text" id="sketchpad-post" autocomplete="off" value="" placeholder="Message"/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果 setAttribute 函数的第二个参数是空字符串(如上面的示例所示),则它不起作用:它不会清空文本字段(文本字段具有先前设置的值) )。

\n\n

现在,如果第二个参数是非空字符串,那么它就可以工作:它将我的文本字段设置为提供的值。

\n\n

我发现这种行为特别奇怪\xe2\x80\xa6

\n\n

我尝试强制执行 autocomplete="off" (甚至 autocomplete="flu") 执行 setAttribute 并执行removeAttribute(\'value\') 但当用户显示它时我仍然无法设法将此字段留空。

\n\n

作为解决方法,我可以将该值设置为一种占位符,例如 \'\xe2\x80\xa6\' 或任何其他字符(可能是不可破坏的空格?),但 \xe2\x80\x99s 不太好。

\n\n

我在最新的 Chrome (Chromium) 和 Firefox 中都有这种行为。

\n\n

任何想法 ?

\n

javascript

3
推荐指数
1
解决办法
3万
查看次数

如何使用SQLite3格式化.schema输出?

我使用python创建了一些sqlite表架构。

当我使用sqlite3客户端并发出.schema命令时,我可以看到输出已预先格式化,如用作该executescript()函数参数的SQL源文件中所示。

有什么方法可以用来格式化.schema命令的输出?

sql sqlite database-schema python-3.x

1
推荐指数
2
解决办法
496
查看次数

标签 统计

python-3.x ×3

database-schema ×1

javascript ×1

json ×1

pysnmp ×1

python ×1

rdap ×1

snmp ×1

sql ×1

sqlite ×1