这个错误似乎已经被提过了,但是我注意到响应是创建一个类并实例化一个对象。在这里,我只定义了一个读取Yaml文件并吐出值的函数。
import yaml
def read_yaml(file):
with open(file, "r") as stream:
try:
config = yaml.load(stream)
print(config)
except yaml.YAMLError as exc:
print(exc)
print("\n")
return config
read_yaml(config.yaml)
print(config)
这将返回错误:“ NameError:名称'config'未定义”。我可以从yaml文件中打印数据,但不能打印该函数返回的配置。
答案 0 :(得分:0)
您正在read_yaml函数内部定义变量“ config”,但是随后您尝试在函数外部使用该变量(实际上,您试图将其作为参数传递给定义该函数的同一函数)。
要解决此问题,请将最后一行更改为类似
read_yaml(“ file.txt”)
其中file.txt是包含您Yaml的文件的名称。
答案 1 :(得分:0)
在第4行上,在函数定义的范围内定义变量config
(通过为其赋值) ,该变量从第1行开始。然后在第11行,函数(注意缩进),您尝试在全局范围内访问名为config
的变量(并引用其属性yaml
)-但没有一个变量。
可能您不是要访问最后一行的变量。您是要传递字符串config.yaml
作为文件名吗?然后它必须用引号引起来。
答案 2 :(得分:0)
您可能想写:
read_yaml("config.yaml")
请记住,字符串由两个引号分隔。