gpt4 book ai didi

Python 转换 yaml 为 json

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

我正在尝试创建一个(或两个)在线类轮,用于将 YAML 文件转换为 Json 并执行简单的转换。

这是代码:

#!/usr/bin/python
import yaml,json

yml="""
- AppName: Wiki-server
- InstanceType: m4.large
"""

# Version 1:
y = yaml.load(yml)
o=[]
for i in y:
d={}
d['ParameterKey']=i.keys()[0]
d['ParameterValue']=i.values()[0]
o.append(d)
print json.dumps(o, indent=2)

我得到了我需要的结果:

[
{
"ParameterValue": "Wiki-server",
"ParameterKey": "AppName"
},
{
"ParameterValue": "m4.large",
"ParameterKey": "InstanceType"
}
]

我尝试缩小代码并得到相同的结果。

#                 Version 2:
p=("ParameterKey","ParameterValue")
o=[dict([zip(p,d.items().pop()) for d in [s] ].pop()) for s in y]
print json.dumps(o, indent=2)

# Version 3:
(pk,pv)=("ParameterKey","ParameterValue")
o=[b for r in [ map(lambda (k,v): {pk:k,pv:v}, s.iteritems()) for s in y ] for b in r]
print json.dumps(o, indent=2)

有没有Pythonic的方法来做到这一点?

最佳答案

我不认为打高尔夫球总是会导致Python代码,但这是我能想到的最好的。我认为发生的事情相当清楚,同时也很简洁。不过,我不太喜欢其中的神奇数字。

#!/usr/bin/python
import yaml,json

yml="""
- AppName: Wiki-server
- InstanceType: m4.large
"""

y = yaml.load(yml)
d = [i.items()[0] for i in y]
d = [{'parameterKey': k_v[0], 'parameterValue': k_v[1]} for k_v in d]
print(json.dumps(d, indent=2))

关于Python 转换 yaml 为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715442/

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