我正在编写一个 python 应用程序。我正在尝试使用 PyYaml 将我的 python 对象转储到 yaml 中。我正在使用 Python 2.6 并运行 Ubuntu Lucid 10.04。我在 Ubuntu 包中使用 PyYAML 包:http ://packages.ubuntu.com/lucid/python/python-yaml
我的对象有 3 个文本变量和一个对象列表。大致是这样的:
ClassToDump:
#3 text variables
text_variable_1
text_variable_2
text_variable_3
#a list of AnotherObjectsClass instances
list_of_another_objects = [object1,object2,object3]
AnotherObjectsClass:
text_variable_1
text_variable_2
text_variable_3
我要转储的类包含 AnotherObjectClass 实例的列表。这个类有几个文本变量。
PyYaml 不会以某种方式转储 AnotherObjectClass 实例中的集合。PyYAML 会转储 text_variable_1、text_variable_2 和 text_variable_3。
我正在使用以下 pyYaml API 转储 ClassToDump 实例:
classToDump = ClassToDump();
yaml.dump(ClassToDump,yaml_file_to_dump)
有没有人有将对象列表转储到 YAML 的经验?
这是实际的完整代码片段:
def write_config(file_path,class_to_dump):
config_file = open(file_path,'w');
yaml.dump(class_to_dump,config_file);
def dump_objects():
rule = Miranda.Rule();
rule.rule_condition = Miranda.ALL
rule.rule_setting = ruleSetting
rule.rule_subjects.append(rule1)
rule.rule_subjects.append(rule2)
rule.rule_verb = ruleVerb
write_config(rule ,'./config.yaml');
这是输出:
!!python/object:Miranda.Rule rule_condition: ALL rule_setting: !!python/object:Miranda.RuleSetting {confirm_action: true, description: My Configuration, enabled: true, recursive: true, source_folder: source_folder} rule_verb: !!python /object:Miranda.RuleVerb {压缩:true,dest_folder:/home/zainul/Downloads,类型:移动文件}