Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
YAML加载期间出现python str错误_Python_Yaml_Runtime Error_Pyyaml - Fatal编程技术网

YAML加载期间出现python str错误

YAML加载期间出现python str错误,python,yaml,runtime-error,pyyaml,Python,Yaml,Runtime Error,Pyyaml,大家早上好!(是的,我知道,早上在你这边没有必要;-)) 我来找你是因为我在一段我无法解释的代码中发现了一个小错误 我目前正在构建一个类,目标是做两件简单的事情: 打开YAML格式的配置文件,然后加载此文件 不幸的是,我的全新革命计划(这显然是一个笑话)今天不想成为一名好士兵,拒绝做它应该做的事情 这是我的密码: main.py部分: #!/usr/bin/env python import socket from models import setting run = setting.app

大家早上好!(是的,我知道,早上在你这边没有必要;-))

我来找你是因为我在一段我无法解释的代码中发现了一个小错误

我目前正在构建一个类,目标是做两件简单的事情:

打开YAML格式的配置文件,然后加载此文件

不幸的是,我的全新革命计划(这显然是一个笑话)今天不想成为一名好士兵,拒绝做它应该做的事情

这是我的密码:

main.py部分:

#!/usr/bin/env python
import socket
from models import setting

run = setting.app_config()
run.get_config()
下面是设置模块:

import os
import yaml

class app_config:

def __init__(self, custom_cfg=None):

    self.workdir = os.getcwd()
    self.default_config_name = 'app_config.yaml'
    self.default_config_path = self.workdir+"/assets/"

    if custom_cfg is None:
        self.config_file_path = self.default_config_path+self.default_config_name

    else:
        self.config_file_path = custom_cfg

def get_config(self):

    app_config_file = open(self.config_file_path, 'r')
    parsed_config_file = yaml.load(app_config_file, 'r')
    app_config_file.close()
    network_settings = parsed_config_file['network']
    hostname = network_settings['host']
    socket = network_settings['port']
    buffer_size = network_settings['buffer_size']

    print network_settings, hostname, socket, buffer_size
因此,这两段代码的问题似乎来自于以下声明:

parsed_config_file = yaml.load(app_config_file, 'r') <-- Line 22

parsed_config_file=yaml.load(app_config_file,'r')告诉加载函数您想打开某个文件进行读取,因此假设您给它一个文件。摆脱“r”论点


除非你想指定一个文件路径,在这种情况下,我想你想加载的是app\u config\u file\u path

好的,我明白,这就是诀窍,我想解析一个文件,它是我的app\u config\u file变量指向的。事实上,config_file_path变量只是一个动态字符串对象,告诉程序在哪里查看。非常感谢你让我开心;-)
Traceback (most recent call last):
File "main.py", line 6, in <module>
  run.get_config()
File "/home/dri/devil_project/models/setting.py", line 22, in get_config
  parsed_config_file = yaml.load(app_config_file, 'r')
File "/usr/local/lib/python2.6/dist-packages/yaml/__init__.py", line 69, in load
  loader = Loader(stream)
TypeError: 'str' object is not callable