je le Python suivant:PyYAML YAML load_all aux objets (joliment)
class Instrument:
def quandl_get(self):
return quandl.get(self.quandl)
def yaml_load_all(name):
with open('yaml/' + str(name) + '.yaml', 'r') as ymlfile:
return list(yaml.load_all(ymlfile))
instruments = yaml_load_all("instruments")
Et la YAML suivante:
!!python/object:v.Instrument
vstoxx:
fractional_contracts: False
multiplier: 100
slippage: 0.0017
per_contract_cost: 0.0211
quandl: 'CHRIS/EUREX_FVS1'
---
!!python/object:v.Instrument
corn:
multiplier: 5000
symbol: 'zc'
months_traded: [3, 5, 7, 9, 12]
quandl: 'CHRIS/CME_C2'
forecasts: ['ewmac']
Ce que je veux est un dict d'instruments, donc je peux faire instruments['vstoxx'].quandl_get()
. En prime, je ne souhaite pas répéter !!python/object:v.Instrument
à chaque fois dans le fichier YAML.
Actuellement, j'ai une liste d'instruments. Je pense que je dois faire deux étapes, charger les objets dans une liste, puis les mapper à un dict. Est-ce vraiment le moyen le plus propre?