我有一个YAML文件,其内容如下:
a: 45
b: cheese
c: 7.8
我希望能够将这些信息读入python中的变量,但是经过大量的谷歌搜索后,我可以解决这个问题,或者我必须先把它放到另一个python类型中然后再将它放入变量?最后,我想使用a和c中的值进行计算。
答案 0 :(得分:2)
通常,使用字典会因使用yaml.load("""a: 45\nb: cheese\nc: 7.8""")
而导致没有错误 - 如果你真的必须将这些作为实际变量放入命名空间,你可以这样做:
>>> y = yaml.load("""a: 45
... b: cheese
... c: 7.8""")
>>> globals().update(y)
>>> b
"cheese"
但我不推荐它。
答案 1 :(得分:2)
问题在于您的信息存储方式。请参阅YAML规范。您提供的信息将以字符串形式返回。 尝试在您的信息中使用类似parser的解析器来验证它返回您希望它返回的内容。
话虽如此。要将其作为字典返回,必须将其另存为
a: 45
b: cheese
c: 7.8
如果您想将其表示为字典,则上面是要保存的正确格式。
下面是一些python代码。请注意我将信息保存到名为information.yaml
的文件中 import yaml
with open('information.yaml') as info:
info_dict = yaml.load(info)
答案 2 :(得分:0)
首先,你需要冒号之后的空格才能使它成为合法的名字(wiki:searchcolon)。有关pyyaml的更多信息,请单击here。
#pip install pyyaml
In [1]: text="""
...: a: 45
...: b: cheese
...: c: 7.8"""
In [2]: import yaml
In [3]: print yaml.load(text)
{'a': 45, 'c': 7.8, 'b': 'cheese'}
现在你很高兴去了:)
如果有人对空间问题感兴趣:
In [4]: text1="""
a:45
b:cheese
c:7.8"""
In [6]: print yaml.load(text1)
a:45 b:cheese c:7.8