gpt4 book ai didi

python - PyYAML 用下划线替换键中的破折号

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:17 27 4
gpt4 key购买 nike

我想将一些配置参数从 YAML 直接映射到 Python 参数名称。只是想知道是否有一种方法无需编写额外代码(之后修改键)让 YAML 解析器用下划线“_”替换键中的破折号“-”。

some-parameter: xyz
some-other-parameter: 123

在使用 PyYAML(或可能是其他库)解析时应该成为具有值的字典:

{'some_parameter': 'xyz', 'some_other_parameter': 123}

然后我可以将字典作为命名参数传递给函数:

foo(**parsed_data)

我知道之后我可以遍历键并修改它们的值,但我不想那样做:)

最佳答案

至少对于您所述的情况,您不需要转换 key 。鉴于:

import pprint

def foo(**kwargs):
print 'KWARGS:', pprint.pformat(kwargs)

如果你设置:

values = {
'some-parameter': 'xyz',
'some-other-parameter': 123,
}

然后调用:

foo(**values)

你得到:

KWARGS: {'some-other-parameter': 123, 'some-parameter': 'xyz'}

如果您的目标实际上是调用这样的函数:

def foo(some_parameter=None, some_other_parameter=None):
pass

当然,您需要映射键名。但你可以这样做:

foo(**dict((k.replace('-','_'),v) for k,v in values.items()))

关于python - PyYAML 用下划线替换键中的破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com