可以将两个字符串参数传递给函数中构建的python dict()吗?

时间:2014-06-26 03:37:08

标签: python-3.x dictionary pexpect

我有一个循环我想建立一个字典。我遇到问题的代码部分是密钥和值都是字符串。我无法将IP变量返回字符串转换为int,也不是浮点数。

这是我的课程中尝试使用的字典构建字典的方法。在IP范围内的其他地方有一个循环我对提供方法参数' ip'感兴趣。

def dictbuild(self,ip):
    s = pxssh.pxssh()
    s.force_password = True
    try:
        s.login(str(ip), 'root', 'password')
        s.sendline('hostname')   # run a command
        s.prompt()             # match the prompt
        out = s.before        # print everything before the prompt, this returns a byte object and could need decode(utf-8)
        out = out.decode('utf-8')
        out = out.split()
        out = out[1]
        print(type(out)) #These type function give us an easy output of data types in the traceback
        print(type(ip))

        ipdict = dict(out=ip) ###Getting stuck here on two string types.
        print(ipdict)
        s.logout()
    except (pxssh.ExceptionPxssh, pexpect.EOF) as e:
        pass

我没有传递我想要的字符串(它实际上是盒子的主机名),而是得到这样的输出......

<class 'str'>
<class 'str'>
{'out': '10.20.234.3'}

python文档仅提供key的示例,字符串和值为int。我使用这个错了吗?

https://docs.python.org/2/tutorial/datastructures.html

提前致谢。

1 个答案:

答案 0 :(得分:2)

改为使用dict文字:

ipdict = { out: ip }

以这种方式调用dict()只是传递命名参数; dict literals为值的键和表达式提供表达式。