我有一个循环我想建立一个字典。我遇到问题的代码部分是密钥和值都是字符串。我无法将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
提前致谢。
答案 0 :(得分:2)
改为使用dict文字:
ipdict = { out: ip }
以这种方式调用dict()
只是传递命名参数; dict literals为值的键和表达式提供表达式。