Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在shell脚本的一行中编写多行python代码_Python_Json_Shell - Fatal编程技术网

在shell脚本的一行中编写多行python代码

在shell脚本的一行中编写多行python代码,python,json,shell,Python,Json,Shell,我正在尝试使用shell脚本编辑json文件,而不使用jq。我找到了必要的python代码,但是当我试图在shell中的一行中执行所有代码时,我收到了一个语法错误。 我编写了以下命令: export data = `python -c "import json;import os;filename='test.json';with open(filename, 'r') as f:data = json.load(f) data['id'] = 'abc';os.remove(filename)

我正在尝试使用shell脚本编辑json文件,而不使用jq。我找到了必要的python代码,但是当我试图在shell中的一行中执行所有代码时,我收到了一个语法错误。 我编写了以下命令:

export data = `python -c "import json;import os;filename='test.json';with open(filename, 'r') as f:data = json.load(f) data['id'] = 'abc';os.remove(filename);with open(filename, 'w') as f:json.dump(data, f, indent=4)"`
有什么建议吗?

得到了答案:

$(python -c "import json;import os;filename='test.json';f=open(filename, 'r');data=json.load(f);data['id']="abc";os.remove(filename);f=open(filename, 'w');json.dump(data, f, indent=4);")

无论如何谢谢你

为什么不把代码放在一个单独的python脚本中,用shell中的一行代码就可以调用它呢?python yourscript.py。您还可以让脚本获取所需的任何参数。为什么不创建一个
.py
文件并运行它呢?我正在尝试通过shell运行jenkins作业,我需要一个jenkins参数,用于修改json中的数据。这就是我需要在单个命令中执行修改操作的原因。请确保
=
周围没有空格。还考虑<代码> $()>代码>导出代码>导出数据= $(Python…)/代码>我尝试执行:导出数据=(Python -c)导入JSON;导入OS;文件名=“Test.JSON”;打开(文件名,R′)为F:DATA=JSON.Load(f)数据[ID'′=ABC;OS删除(文件名);打开(文件名,W)为F:JSON.DUMP(数据,F,缩进=4))。我在“with”处看到语法错误。