【发布时间】:2016-02-04 17:27:25
【问题描述】:
我想将 ansible-init 文件转换为 json。所以,我只使用这段代码: common_shared 文件:
[sql]
x.com
[yps_db]
y.com
[ems_db]
c.com
[scc_db]
d.com
[all:vars]
server_url="http://x.com/x"
app_host=abc.com
server_url="https://x.com"
[haproxy]
1.1.1.1 manual_hostname=abc instance_id=i-dddd
2.2.2.2 manual_hostname=xyz instance_id=i-cccc
用于将 Ansible INI 文件转换为 JSON:
import json
options= {}
f = open('common_shared')
x = f.read()
config_entries = x.split()
for key,value in zip(config_entries[0::2], config_entries[1::2]):
cleaned_key = key.replace("[",'').replace("]",'')
options[cleaned_key]=value
print json.dumps(options,indent=4,ensure_ascii=False)
但它会打印这个结果:
{
"scc_db": "xxx",
"haproxy": "x.x.x.x",
"manual_hostname=xxx": "instance_id=xx",
"ems_db": "xxx",
"yps_db": "xxx",
"all:vars": "yps_server_url=\"xxx\"",
"1.1.1.5": "manual_hostname=xxx",
"sql": "xxx",
"xxx": "scc_server_url=xxxx\""
}
但我想以正确的 JSON 格式打印结果,但无法理解如何操作。我尝试了配置解析器,但没有得到帮助以所需格式打印它。
【问题讨论】:
-
你没有做任何事情来解析这个文件来转换它。正确的“JSON 格式”究竟是什么?
-
我更新了我的问题和库存文件格式。请帮忙
-
感谢您的宝贵意见。但我发现了一些使用 ansible 获取所有库存 json 结果的新方法。我会问到其他发行版