Python et PYAML - yaml.scanner.ScannerError: les valeurs de mappage ne sont pas autorisées ici
Je suis sur ubunty 64 avec python 2.7 et à l'aide de PyYAML-3.10
Ci-dessous mon fichier 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
Lorsque j'exécute le code ci-dessous j'obtiens l'erreur ci-dessous. Mais si je supprime les lignes au-dessus de la treeroot le code fonctionne:
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 <module>
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
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Essayer de mettre des espaces après les virgules.
les fichiers yaml ne pas accepter les valeurs immédiatement après les deux points d'interrogation dans le contenu du fichier. Entrez la valeur après un espace, enregistrez le fichier et de l'exécuter à nouveau, l'erreur aura disparu. J'avais rencontré l'erreur similaire au cours de ma automation à l'aide de BDD, et a obtenu ce fixe après beaucoup de débogage.