我写了一个小测试脚本:
#!/usr/bin/env python
import pexpect
import re
List_dictionary = {
'b -c \\"select name,type,is_supported from algorithm where name = \\\'RSA\\\' and key_size=1024 \\"':'app \"algo -e -n RSA -ks 1024\"',
'b -c \\"select name,type,is_supported from algorithm where name = \\\'RSA\\\' and key_size=1024 \\"':'app \"algo -d -n RSA -ks 1024\"'
}
test_dict={
'a':1,
'b':2
}
for a,b in List_dictionary.items():
print a
for a,b in test_dict.items():
print a
print len(List_dictionary)
print len(test_dict)
我得到的输出是:
./test.py
b -c \"select name,type,is_supported from algorithm where name = \'RSA\' and key_size=1024 \"
a
b
1
2
为什么只有一个元素从List_dictionary中获取,并且它的长度为1.相反,据我所知,它应该是2。
答案 0 :(得分:3)
这很容易。
字典的工作方式是key
对中的每个key : value
都是唯一的。
这意味着你的词典中的第二个键会替换第一个键,因为它们是相同的。
'b -c \\"... \\"'
'b -c \\"... \\"'
尝试更改一个字母,然后在开始时尝试'c -c`来试用它 另一个解决方案是为你的命令/字符串设置一个合适的密钥,并且(如下面提到的GWW)将你的命令放在一个列表中。请考虑以下事项:
List_dictionary = {
'first' : ['b -c \\"select name,type,is_supported from algorithm where name = \\\'RSA\\\' and key_size=1024 \\"', 'app \"algo -e -n RSA -ks 1024\"'],
'sendond' : ['b -c \\"select name,type,is_supported from algorithm where name = \\\'RSA\\\' and key_size=1024 \\"', 'app \"algo -d -n RSA -ks 1024\"']
}
这为您提供了独特的键,使整个字典更清晰
您甚至可以将密钥从first/second/
重命名为algo -e
和algo -d
,因为密钥字段中允许使用空格。