我在想办法维持山药的秩序?当我重读字典时,我的顺序是错的。在
from yaml import load
def __init__(self, logger, configFilePath):
self.config_dict = None
with open(configFilePath) as config:
self.config_dict = load(config)
logger.debug('values:')
for key, value in self.config_dict.iteritems():
logger.debug('- ' + key + ': ' + str(value))
logger.debug('+++ Successfully finished +++')
def getConfig(self):
return self.config_dict
Yaml示例
^{pr2}$这是一个我如何调用这个类的例子。没什么特别的。简而言之,我不是先得到东西,而是先得到东西。。。在
yamlObj = parser.config_parser(logger, theFile)
myYaml = yamlObj.getConfig()
for image in myYaml["repos.images"]:
myStr = image["foo"] + '/' + image["id"]
logger.debug("myStr is: " + myStr)
有什么方法可以做到这一点,还是有更好的方法来组织我的山药?在
您可以使用
namedtuple
来控制加载的配置。另外,考虑使用safe_load
然后,举例来说
^{pr2}$会给你
所以,要访问一个特定的元素,比如,
thing2
,您可以这样处理它我最近为此写了一个库,^{} 。在壳牌公司:
在Python代码中,这是一个字符的更改:
^{pr2}$然后映射将被加载到^{} 实例中,而不是常规dict中,保留它们在配置文件中的原始顺序。在
字典(或散列、键/值、关联数组、映射,可以随意调用)通常是显式无序的。如果您真的想维护订单,您可以使用不同的yaml库来实现这一点(在工作中,我们使用https://pypi.python.org/pypi/ruamel.yaml对yaml文件进行“就地”更新)。在
但是一旦数据从YaML中取出,一定要使用有序字典(python3)或其他解决方案。在
相关问题 更多 >
编程相关推荐