如何使用python解析yaml字符串?

gae*_*123 5 python yaml python-2.x python-3.x

我看到一个API和许多示例,这些示例说明了如何解析yaml文件,但是字符串呢?

Tom*_*cek 12

您不需要将字符串包装在 StringIO 中,该safe_load方法接受字符串:

In [1]: yaml.safe_load("{1: 2}")           
Out[1]: {1: 2}
Run Code Online (Sandbox Code Playgroud)


gae*_*123 6

这是一个将在一个自包含示例中执行此操作的函数:

import yaml
try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO

def parse_yaml_string(ys):
    fd = StringIO(ys)
    dct = yaml.load(fd)
    return dct

dct = parse_yaml_string('''
name: John
age: 30
''')
assert dct['name'] == 'John'
assert dct['age'] == 30
Run Code Online (Sandbox Code Playgroud)

  • 您应该对不受信任的输入使用“yaml.safe_load” (3认同)
  • 当我使用这种方法时,`dct`的类型仍然是字符串 (2认同)