我正在努力使用我需要创建的ansible
模块。一切都完成后,模块会将json
文件从第三方传送到fs
。此json
文件应该是(唯一)输出,以便能够访问以注册json
文件并访问内容 - 或者至少使输出以某种方式正确访问。
输出文件包含一个正确的json
文件,我尝试了各种方法来实现我的目标。
,包括:
只需使用json
或print
打印os.stdout.write
文件,因为根据文档,ansible
只需stdout
。< / p>
导入json
并转储正在使用json.dumps(data)
或类似:
with open('path-to-file', 'r') as tmpfile:
data = json.load(tmpfile)
module.exit_json(changed=True, message="API call to %s successfull" % endpoint, meta=data)
ansible
拒绝访问转义的部分。使json
数据可供进一步使用的正确方法是什么?
编辑:
json
看起来像这样(嗯,这是一个巨大的json
,这只是它的一部分):
{
"total_results": 51,
"total_pages": 2,
"prev_url": null,
"next_url": "/v2/apps?order-direction=asc&page=2&results-per-page=50",
在register
之后,debug
输出如下所示,例如我无法访问output.meta.total_results
。
ok: [localhost] => {
"output": {
"changed": true,
"message": "API call filtering /v2/apps with name and yes-no was successfull",
"meta": "{\"total_results\": 51, \"next_url\": \"/v2/apps?order-direction=asc&page=2&results-per-page=50\", \"total_pages\": 2, \"prev_url\": null, (...)
尝试访问var时的ansible
输出:
ok: [localhost] => {
"output.meta.total_results": "VARIABLE IS NOT DEFINED!"
}
答案 0 :(得分:0)
有趣。我使用os.stdout.write
的测试以某种方式失败了,但使用print json.dumps(data)
有效。
这已经解决了。