Python y PYAML – yaml.scanner.ScannerError: los valores de mapeo no están permitidos aquí

Estoy en ubunty 64 con python 2.7 y uso PyYAML-3.10

A continuación se muestra mi archivo yaml:

host:localhost username:root password:test database:test operations_database:operations treeroot: branch1: name: Node 1 branch1-1: name: Node 1-1 branch2: name: Node 2 branch2-1: name: Node 2-1 

Cuando ejecuto el siguiente código obtengo el siguiente error. Pero si quito las líneas sobre el trote, funciona el código:

 from yaml import load, dump try: from yaml import CLoader as Loader, CDumper as Dumper except ImportError: from yaml import Loader, Dumper f=open('amazon.yaml') data = load(f, Loader=Loader) Traceback (most recent call last): File "/home/ubuntu/workspace/Amazon-Products-Crawler-1/config_files/test_yaml.py", line 10, in  data = load(f, Loader=Loader) File "/usr/local/lib/python2.7/dist-packages/yaml/__init__.py", line 71, in load return loader.get_single_data() File "/usr/local/lib/python2.7/dist-packages/yaml/constructor.py", line 37, in get_single_data node = self.get_single_node() File "/usr/local/lib/python2.7/dist-packages/yaml/composer.py", line 36, in get_single_node document = self.compose_document() File "/usr/local/lib/python2.7/dist-packages/yaml/composer.py", line 58, in compose_document self.get_event() File "/usr/local/lib/python2.7/dist-packages/yaml/parser.py", line 118, in get_event self.current_event = self.state() File "/usr/local/lib/python2.7/dist-packages/yaml/parser.py", line 193, in parse_document_end token = self.peek_token() File "/usr/local/lib/python2.7/dist-packages/yaml/scanner.py", line 128, in peek_token self.fetch_more_tokens() File "/usr/local/lib/python2.7/dist-packages/yaml/scanner.py", line 220, in fetch_more_tokens return self.fetch_value() File "/usr/local/lib/python2.7/dist-packages/yaml/scanner.py", line 580, in fetch_value self.get_mark()) yaml.scanner.ScannerError: mapping values are not allowed here in "amazon.yaml", line 6, column 9 

Intenta poner espacios después de los dos puntos.

Los archivos yaml no aceptan valores inmediatamente después de la marca de dos puntos en el contenido del archivo. Ingrese el valor después de un espacio, guarde el archivo y ejecútelo nuevamente, el error desaparecerá. Me encontré con un error similar durante mi automatización usando BDD, y esto se solucionó después de una gran cantidad de depuración.