Yaml在Python3版本的pythonywh中工作不正常

2024-05-18 19:23:46 发布

您现在位置:Python中文网/ 问答频道 /正文

你好。我正在尝试为我的pythonanywhere代码创建一个快速脏配置文件。我试着用YAML,但结果很奇怪。你知道吗

import os

import yaml

yaml_str = """Time_config:
    Tiempo_entre_avisos: 1
    Tiempo_entre_backups: 7
    Tiempo_entre_pushes: 30
Other_config:
    Morosos_treshold: 800
Mail_config:
    Comunication_mail: ''
    Backup_mail: ''
    Director_mail: []
"""

try:
    yaml_file = open("/BBDD/file.yml", 'w+')
except:
    print("FILE NOT FOUND")
else:
    print("PROCESSING FILE")
    yaml.dump(yaml_str, yaml_file, default_flow_style=False)
    a = yaml.dump(yaml_str, default_flow_style=False)
    print(a) #I make a print to debug
    yaml_file.close()

代码似乎运行得相当好。然而,结果似乎是腐败的。无论是在文件中还是在打印中都是这样(包括“s”):

"Time_config:\n    Tiempo_entre_avisos: 1\n    Tiempo_entre_backups: 7\n    Tiempo_entre_pushes:\  \ 30\nOther_config:\n    Morosos_treshold: 800\nMail_config:\n    Comunication_mail:\  \ ''\n    Backup_mail: ''\n    Director_mail: []\n"

如果在python控制台中复制并粘贴该字符串,yaml将给出预期的结果,即:

Time_config:
    Tiempo_entre_avisos: 1
    Tiempo_entre_backups: 7
    Tiempo_entre_pushes: 30
Other_config:
    Morosos_treshold: 800
Mail_config:
    Comunication_mail: ''
    Backup_mail: ''
    Director_mail: []

为什么会这样?为什么我第一枪就没有结果?为什么打印换行符(\n)而不是插入新行?为什么它包括“符号”?你知道吗


Tags: configyamltimemailfileprintbackupsstr
1条回答
网友
1楼 · 发布于 2024-05-18 19:23:46

我认为应该首先从字符串加载yaml,然后继续:

# Everything before here is the same
    print("PROCESSING FILE")
    yaml_data = yaml.load(yaml_str)
    yaml.dump(yaml_data, yaml_file, default_flow_style=False)
    a = yaml.dump(yaml_data, default_flow_style=False)
    print(a) #I make a print to debug
    yaml_file.close()

相关问题 更多 >

    热门问题