Articles of pyyaml

¿Cómo usar la clase de diccionario personalizada al cargar yaml?

Actualmente estoy cargando un archivo YAML como este import yaml yaml.load(”’level0: stuff: string0 level1: stuff: string1 level2: …”’) El código anterior crea diccionarios nesteds . En lugar de crear diccionarios nesteds, quiero crear instancias anidadas de objetos FancyDict . class FancyDict(collections.MutableMapping): def __init__(self, *args, **kwargs): for name in kwargs: setattr(self, name, kwargs[name]) La sección sobre […]

Diferentes representaciones de matrices YAML.

Estoy escribiendo un convertidor de tipo de archivo utilizando Python y PyYAML para un proyecto en el que estoy traduciendo desde y hacia archivos YAML varias veces. A continuación, estos archivos son utilizados por un servicio independiente sobre el que no tengo control, por lo que debo volver a traducir el YAML de la misma […]

¿Por qué PyYAML usa generadores para construir objetos?

He estado leyendo el código fuente de PyYAML para tratar de entender cómo definir una función constructora adecuada que pueda agregar con add_constructor . Tengo un buen conocimiento de cómo funciona ese código ahora, pero aún no entiendo por qué los constructores de YAML predeterminados en SafeConstructor son generadores. Por ejemplo, el método construct_yaml_map de […]

Python y PYAML – yaml.scanner.ScannerError: los valores de mapeo no están permitidos aquí

Estoy en ubunty 64 con python 2.7 y uso PyYAML-3.10 A continuación se muestra mi archivo yaml: host:localhost username:root password:test database:test operations_database:operations treeroot: branch1: name: Node 1 branch1-1: name: Node 1-1 branch2: name: Node 2 branch2-1: name: Node 2-1 Cuando ejecuto el siguiente código obtengo el siguiente error. Pero si quito las líneas sobre el […]

YAML analizando objetos (PyYAML Python3)

Tengo el siguiente código: class Settings: def __init__(self, annual_volatility_target): self.annual_volatility_target = annual_volatility_target self.daily = annual_volatility_target/np.sqrt(252) def yaml_load(name): with open(‘yaml/’ + str(name) + ‘.yaml’, ‘r’) as ymlfile: return yaml.load(ymlfile) settings = yaml_load(“settings”) Con el siguiente YAML: !!python/object:v.Settings annual_volatility_target: 0.25 El problema es que, cuando carga settings , settings.daily no está establecida. settings.annual_volatility_target es, independientemente de si […]

PyYAML convierte automáticamente ciertas claves a valores booleanos

He estado trabajando con el analizador PyYAML durante algunos meses para convertir tipos de archivos como parte de un flujo de datos. He encontrado que el analizador es bastante idiosincrásico a veces y parece que hoy me he topado con otro comportamiento extraño. El archivo que estoy convirtiendo actualmente contiene la siguiente sección: off: yes: […]

YAML carga 5e-6 como una cadena y no un número

Cuando cargo un número con e formo un volcado JSON con YAML, el número se carga como una cadena y no como un flotador. Creo que este simple ejemplo puede explicar mi problema. import json import yaml In [1]: import json In [2]: import yaml In [3]: All = {‘one’:1,’low’:0.000001} In [4]: jAll = json.dumps(All) […]

Parámetros de constructor por defecto en pyyaml

No he podido averiguar cómo hacerlo en la documentación de PyYAML. Quiero representar las clases de python que he definido en YAML, y tengo un valor predeterminado dado a un parámetro en el constructor si no está especificado en el YAML. Por ejemplo: >>> class Test(yaml.YAMLObject): … yaml_tag = u”!Test” … def __init__(self, foo, bar=3): […]

Cómo actualizar el archivo yaml usando python

Tengo un archivo some.yaml con los contenidos a continuación. init_config: {} instances: – host: username: password: El archivo yaml debe analizarse y actualizarse como se muestra a continuación. init_config: {} instances: – host: 1.2.3.4 username: Username password: Password ¿Cómo puedo analizar los valores y actualizarlos apropiadamente?

¿Por qué error fatal: el archivo ‘yaml.h’ no se encuentra al instalar PyYAML?

Estoy intentando descargar PyYAML e instalarlo siguiendo las instrucciones aquí http://pyyaml.org/wiki/PyYAML Así que descargué el paquete ZIP: http://pyyaml.org/download/pyyaml/PyYAML-3.11.zip y luego cd en esa carpeta y python setup.py –with-libyaml install , el mensaje de error que recibí es ext/_yaml.h:2:10: fatal error: ‘yaml.h’ file not found Pero revisé la carpeta PyYAML-3.11, el yaml.h está ahí … ACTUALIZACIÓN: […]