¿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"
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 claveOptionList
.Por último, utilizamos el módulo
yaml
para volcar el diccionario de configuración a un archivo, en este caso, atestConfig.yaml
.Aquí está el código Python de muestra para generar el archivo YAML deseado:
Al ejecutar este script con el comando
python3
, se generará el archivotestConfig.yaml
con el formato deseado.