Skip to content

Instantly share code, notes, and snippets.

@ywkaras
Created April 26, 2019 19:21
Show Gist options
  • Save ywkaras/651c25f2e0b66ae2b0b10711283aeb26 to your computer and use it in GitHub Desktop.
Save ywkaras/651c25f2e0b66ae2b0b10711283aeb26 to your computer and use it in GitHub Desktop.
yaml indentation oddity
$ cat load.py
import yaml
import sys
f = open(sys.argv[1], 'r')
y = yaml.load(f)
print(y)
$
$ cat y1.yaml
a:
- b: |
one
two
- c: |
three
four
$
$ cat y2.yaml
a:
- b: |
one
two
- c: |
three
four
$
$ python load.py y1.yaml
{'a': [{'b': 'one\ntwo\n'}, {'c': 'three\nfour\n'}]}
$
$ python load.py y2.yaml
Traceback (most recent call last):
File "load.py", line 4, in <module>
y = yaml.load(f)
File "/usr/local/lib/python2.7/site-packages/yaml/__init__.py", line 71, in load
return loader.get_single_data()
File "/usr/local/lib/python2.7/site-packages/yaml/constructor.py", line 37, in get_single_data
node = self.get_single_node()
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 36, in get_single_node
document = self.compose_document()
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 55, in compose_document
node = self.compose_node(None, None)
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 82, in compose_node
node = self.compose_sequence_node(anchor)
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 111, in compose_sequence_node
node.value.append(self.compose_node(node, index))
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 127, in compose_mapping_node
while not self.check_event(MappingEndEvent):
File "/usr/local/lib/python2.7/site-packages/yaml/parser.py", line 98, in check_event
self.current_event = self.state()
File "/usr/local/lib/python2.7/site-packages/yaml/parser.py", line 428, in parse_block_mapping_key
if self.check_token(KeyToken):
File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 115, in check_token
while self.need_more_tokens():
File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 149, in need_more_tokens
self.stale_possible_simple_keys()
File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 289, in stale_possible_simple_keys
"could not find expected ':'", self.get_mark())
yaml.scanner.ScannerError: while scanning a simple key
in "y2.yaml", line 3, column 5
could not find expected ':'
in "y2.yaml", line 4, column 5
$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment