将python嵌入json文件中

时间:2018-06-18 21:40:36

标签: python json

在我的应用程序中,我使用json作为主要API。它存储一组用于处理文件的命令。这很有效,除了我的部分要求是我需要嵌入python。

我有一个笨重的解决方案,但我正在寻找一个更好的解决方案。

以下是我的方法示例:

{ "file key" :
     { "instruction1" : 
           { "commandList" : [
                {
                    "conditionalPythonBlock" : [
                         "myval = int(dict['count'])",
                         "retval = myval > 0"
                    ]
                }
           ]}
     }
}

我编写了一个例程,将“conditionalPythonBlock”折叠成一个多行字符串,然后可以执行该字符串。多线方法对于正确的缩进是必要的。

'dict ['mycount']'中的'dict'变量是此文件解析器中的本地上下文。

retval也是解析器上下文中的局部变量。

任何人都有更优雅的解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这里的一个很好的答案是使用YAML而不是JSON。

PyYaml documentation

上面的示例变为:

file key :
   instruction1 : 
       - commands : 
                conditionalPythonBlock : |
                     myval = int(dict['count'])
                     retval = myval > 0

更具可读性,脚本部分可以直接复制到其中。