filteredKeys()関数からキーのリストを作成しようとしていますが、関数を呼び出すとTypeErrorが返されます。 'NoneType'オブジェクトは反復可能ではありません。"None"が関数に返されないときにPythonが失敗するのはなぜですか?
filteredKeys()の結果を出力するときに「なし」が存在しませんが、リストに変換すると「なし」はありません。私は何が欠けていますか?それは私を夢中にさせている!値のいずれもfilterString
一致しないとき -
key_list = []
for line in stdout.read().splitlines():
input_line = line
input_line = input_line.replace(b'[sudo] password for ufitadmin: ', b'')
key_individual = str(input_line, 'utf-8')
key_individual = key_individual.replace(
'cat: /home/%s/.ssh/authorized_keys: No such file or directory' % user,
'No key exists for this user.')
key_list.append(key_individual)
global keyDict
keyDict = {}
keyDict[host] = key_list
filterString = "No key exists for this user."
filteredKeylist = []
def filteredKeys():
for key,value in keyDict.items():
for values in value:
if values == filterString:
return key
filteredKeylist = list(filteredKeys())
print(filteredKeylist)
「値はありません」ここでは「値の値は?」ですか? – ppasler
'filteredKeys'は常に一致を見つけることは確かではありません。一致して「リターンキー」が見つからない場合、暗黙的に 'None'を返します。 –
また、これは** way **以上のコードです。よいSO質問には、自己完結型の小さなコードサンプルがあります(この場合、おそらく、問題がハードコーディングされた 'keyDict'と' filterString'を持つ 'filteredKeys'関数を含む*のみ*)。 –