【发布时间】:2013-12-24 07:42:24
【问题描述】:
我的 JSON 文档 jsonStr 中有一个 shell 脚本。我试图在反序列化 jsonStr 后使用 Python 子进程模块执行该 shell 脚本 -
#!/usr/bin/python
import subprocess
import json
jsonStr = '{"script":"#!/bin/bash \\n STRING="Hello World" \\n echo $STRING \\n"}'
j = json.loads(jsonStr)
print "start"
subprocess.call(j['script'], shell=True)
print "end"
但不知何故,每当我运行上面的 python 脚本时,我总是会收到这样的错误 -
Traceback (most recent call last):
File "shellscript", line 27, in <module>
j = json.loads(jsonStr)
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 1 column 34 (char 34)
有什么想法我在这里做错了什么?
【问题讨论】:
标签: python bash shell subprocess