如何解析在命令行上传递的JSON

时间:2014-04-01 11:55:03

标签: python json

我试图通过Python中的命令行传递JSON参数:

automation.py {"cmd":"sel_media","value":"5X7_photo_paper.p}

如何提取值sel_media5X7_photo_paper.p

我使用了以下代码,但它无效:

cmdargs = str(sys.argv[1])
print cmdargs

1 个答案:

答案 0 :(得分:4)

如果您将实际有效的JSON传递给命令行并正确引用,则可以使用json module解析该值。

您需要正确引用该值,否则您的shell或控制台将解释该值:

automation.py '{"cmd":"sel_media","value":"5X7_photo_paper.p"}'

对于bash shell应该足够了。

在Python中,使用json.loads()解码:

import sys
import json

cmdargs = json.loads(sys.argv[1])
print cmdargs['cmd'], cmdargs['value']

演示:

$ cat demo.py 
import sys
import json

cmdargs = json.loads(sys.argv[1])
print cmdargs['cmd'], cmdargs['value']

$ bin/python demo.py '{"cmd":"sel_media","value":"5X7_photo_paper.p"}'
sel_media 5X7_photo_paper.p