es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo agregar comillas dobles a los elementos en una exportación YAML de Python sin usar ruamel.yaml?

Estoy generando un archivo de configuración para un servicio que espera una lista de opciones de cadenas entre comillas dobles. Quiero evitar instalar paquetes adicionales a través de pip3 -r requirements.txt, como se sugiere en esta respuesta, y usar el módulo yaml que está disponible con Python 3.8.10 en Ubuntu 20.04. Me gustaría encontrar una forma de resolver este problema sin buscar las líneas y reemplazarlas.

Python 3.8.10 (por defecto, Sep 28 2021, 16:10:42)
[GCC 9.3.0] en linux
Escriba "help", "copyright", "credits" o "license" para obtener más información.
>>> import yaml
>>> yaml.__file__
'/usr/lib/python3/dist-packages/yaml/__init__.py'

python3 test.yaml

import yaml

configDict = {}
configDict["OptionList"] = [
        """item1/Enable""",
        """item2/Disable"""
    ]

with open('./testConfig.yaml', 'w') as f:
    yaml.dump(configDict, f)

testConfig.yaml

Salida actual:

OptionList:
- ''"item1/Enable"''
- ''"item2/Disable"''

Salida deseada:

OptionList:
- "item1/Enable"
- "item2/Disable"
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener un archivo de configuración para un servicio que espera una lista de opciones de cadenas entre comillas dobles, podemos crear un script de Python que utilice el módulo yaml para generar un archivo YAML con el formato deseado.

    Primero, necesitamos crear un diccionario con las opciones de configuración. En este ejemplo, almacenaremos la lista de opciones en una clave llamada OptionList del diccionario.

    A continuación, podemos crear la lista de opciones como cadenas con comillas dobles, como "item1/Enable", y almacenarlas en la clave OptionList.

    Por último, utilizamos el módulo yaml para volcar el diccionario de configuración a un archivo, en este caso, a testConfig.yaml.

    Aquí está el código Python de muestra para generar el archivo YAML deseado:

    import yaml
    
    configDict = {}
    configDict["OptionList"] = [
            "item1/Enable",
            "item2/Disable"
        ]
    
    with open('./testConfig.yaml', 'w') as f:
        yaml.dump(configDict, f)
    

    Al ejecutar este script con el comando python3, se generará el archivo testConfig.yaml con el formato deseado.

Comments are closed.