gpt4 book ai didi

python - Yaml 在 Python3 版本的 pythonanywhere 中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:38 24 4
gpt4 key购买 nike

美好的一天。我正在尝试为我的 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)而不是插入新行?为什么它包含“符号?

最佳答案

我认为您应该首先从字符串加载 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()

关于python - Yaml 在 Python3 版本的 pythonanywhere 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35728514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com