我试图通过Python中的命令行传递JSON参数:
automation.py {"cmd":"sel_media","value":"5X7_photo_paper.p}
如何提取值sel_media
和5X7_photo_paper.p
?
我使用了以下代码,但它无效:
cmdargs = str(sys.argv[1])
print cmdargs
答案 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