如何使用 ruamel.yaml.dump 删除单引号

问题描述 投票:0回答:1

我想从 python 字典创建一个 yaml 文件。但是当我转换正则表达式字符串时,会出现单引号。

我想要:

quickSearch:
        type: string
        maxLength: 250
        pattern: [a-zA-Z0-9.\-_\u4e00-\u9fa5]+

但结果看起来像:

quickSearch:
        type: string
        maxLength: 250
        pattern: '[a-zA-Z0-9.\-_\u4e00-\u9fa5]+'

这是我的代码:

from ruamel.yaml import YAML
yaml = YAML()
param_dict = {
            "quickSearch": {
                "type": "string",
                "maxLength": 250,
                "pattern": "",
            }
        }
pattern = "[a-zA-Z0-9.\-_\\u4e00-\\u9fa5]+"
param_dict["quickSearch"]["pattern"] = pattern
with open("config.yaml", 'w', encoding='utf-8-sig') as f:
    yaml.dump(param_dict, f)

如何表示所有不带单引号的字符串。

python yaml ruamel.yaml
1个回答
0
投票

左方括号是一个特殊字符,表示流式序列的开始(即 YAML 中 Python

list
的两种可能表示之一)。

由于您的字符串以方括号开头,如果在没有方括号的情况下转储它,它将无法正确加载回来,或者在这种情况下会导致加载错误。

您不必担心引号,任何有效的 YAML 解析器都会在加载回字符串时删除它们。

© www.soinside.com 2019 - 2024. All rights reserved.