使用Python执行shell脚本?

2024-09-28 22:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我的JSON文档jsonStr中有一个shell脚本。。在反序列化jsonStr-

#!/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脚本时,总是会出现这样的错误-

^{pr2}$

你觉得我在这里做错什么了吗?在


Tags: 文档import脚本bashjsonstringbin序列化
3条回答

JSON解析器似乎被“inside a”混淆了,尤其是在它表示helloworld的地方。在

注意,只要向pythonjson库请求正确的字符串,就可以优雅地获得所有JSON转义规则。在

import json
jsoncnt = {'script':'#!/bin/bash \n STRING="Hello World" \n echo $STRING \n'}
jsonStr = json.dumps(jsoncnt)
print jsonStr
q = json.loads(jsonStr)

错误的JSON格式。它应该是:

jsonStr = '{"script":"#!/bin/bash \\n STRING=\\"Hello World\\" \\n echo $STRING \\n"}'

对我来说一切都很好。。在

import subprocess
import json

json_dict = {"script":'#!/bin/bash \\n STRING="Hello World" \\n echo $STRING \\n'}

dump = json.dumps(json_dict)

j = json.loads(dump)

print j
print j['script']

print "start"
subprocess.call(j['script'], shell=True)
print "end"

你能把代码贴上去吗json.dumps文件()

结果:

^{pr2}$

相关问题 更多 >