からの解析データを、私はのPython:Pythonでロジック以下でYAMLファイル
- gms:
- localhost1:
address: 192.168.56.101
username: root
password: xxxxxx
command: "uptime"
hostname: mydev_machine
以下のようにYAMLデータを持っていると私はaddress
、password
、command
の値を抽出しようとしています、hostname
import yaml
with open("host_data.yaml",'r') as stream :
data_loaded = yaml.load(stream)
for element in data_loaded:
address=element['gms']['localhost1']['address']
username=element['gms']['localhost1']['username']
password=element['gms']['localhost1']['password']
hostname=element['gms']['localhost1']['hostname']
print(data_loaded)
出力
[{'gms': [{'localhost1': {'address': '192.168.56.101', 'username': 'root', 'password': 'xxxxxx', 'command': 'uptime', 'hostname': 'mydev_machine'}}]}]
私は
Traceback (most recent call last):
File "Python_Programs/log_finder.py", line 12, in <module>
address=element['gms']['localhost1']['address']
TypeError: list indices must be integers or slices, not str
'' data_loaded = yaml.load(ストリーム) ''後の印刷(data_loaded)の出力は何ですか?まず基本的なデバッグを行うべきです。また、 '' gms''キーがどこから来るのかは明確ではありません。 – roganjosh
@roganjosh、更新しました。 'gms'を' dev'に変更しました。 –