Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Lots of ifs solution in Clear category for YAML. More Types by SasuH
import re
def yaml(a):
y_ml = {}
pairs = [(l.split(":")) for l in a.split("\n") if l != ""]
for ke, val in pairs:
val = val.strip(" ")
if val == "false": val = False
elif val == "true": val = True
elif val == "" : val = None
elif val =='"null"': val = "null"
elif val == "null" : val = None
elif type(val) == str:
val = re.sub(r"(\\+)", '\"', val.replace(r'"', ""))
val = int(val) if val.isdigit() else val
y_ml[ke] = val
print(y_ml)
return y_ml
if __name__ == '__main__':
print("Example:")
print(yaml('name: Alex\nage: 12'))
# These "asserts" are used for self-checking and not for an auto-testing
assert yaml('name: Alex\nage: 12') == {'age': 12, 'name': 'Alex'}
assert yaml('name: Alex Fox\n'
'age: 12\n'
'\n'
'class: 12b') == {'age': 12,
'class': '12b',
'name': 'Alex Fox'}
assert yaml('name: "Alex Fox"\n'
'age: 12\n'
'\n'
'class: 12b') == {'age': 12,
'class': '12b',
'name': 'Alex Fox'}
assert yaml('name: "Alex \\"Fox\\""\n'
'age: 12\n'
'\n'
'class: 12b') == {'age': 12,
'class': '12b',
'name': 'Alex "Fox"'}
assert yaml('name: "Bob Dylan"\n'
'children: 6\n'
'alive: false') == {'alive': False,
'children': 6,
'name': 'Bob Dylan'}
assert yaml('name: "Bob Dylan"\n'
'children: 6\n'
'coding:') == {'children': 6,
'coding': None,
'name': 'Bob Dylan'}
assert yaml('name: "Bob Dylan"\n'
'children: 6\n'
'coding: null') == {'children': 6,
'coding': None,
'name': 'Bob Dylan'}
assert yaml('name: "Bob Dylan"\n'
'children: 6\n'
'coding: "null" ') == {'children': 6,
'coding': 'null',
'name': 'Bob Dylan'}
print("Coding complete? Click 'Check' to earn cool rewards!")
Feb. 20, 2021