python替代shell_Python:从Python shell命令替换json文件中的字符串

我是python新手,我正在尝试从python os shell命令替换json文件中的文本/字符串。我得到了我想要的结果,但是它在json文件中附加了额外的空格/创建了一个新行。这基本上就是我想要完成的:我有一个静态json文件(add.json)

我在python中运行两个OS shell命令,并将输出存储到单独的文本文件中。

然后我想取这两个txt文件中的值,并替换

json文件中的两个字符串。

下面是我目前拥有的(为了简单起见,我用简单的命令替换了真正的aws cli命令)import os

import fileinput

cmd = 'hostname > host.txt'

cmd2 = 'echo mama > echo.txt'

os.system(cmd)

os.system(cmd2)

file = open('host.txt')

contents = file.read()

with open("out.json", "wt") as fout:

with open("add.json", "rt") as fin:

for line in fin:

fout.write(line.replace('dns',contents))

file2 = open('echo.txt')

contents2 = file2.read()

with open("out2.json", "wt") as fout2:

with open("out.json", "rt") as fin2:

for line in fin2:

fout2.write(line.replace('ip', contents2))

这就是它产生的结果:{

"Comment": "A new record set for the zone.",

"Changes": [

{

"Action": "CREATE",

"ResourceRecordSet": {

"Name": "WildburritoPC

",

"Type": "A",

"TTL": 60,

"ResourceRecords": [

{

"Value": "mama

"

}

]

}

}

]

}

如您所见,在名称和值之后,它确实替换了值,但添加了一个新行并生成无效的json。

这是我要替换的文件中的值:{

"Comment": "A new record set for the zone.",

"Changes": [

{

"Action": "CREATE",

"ResourceRecordSet": {

"Name": "dns",

"Type": "A",

"TTL": 60,

"ResourceRecords": [

{

"Value": "ip"

}

]

}

}

]

}

提前谢谢你的回答。我知道我上面所说的是非常肮脏的,我相信一定有更好/更干净的方法来完成我正在努力做的事情,但最终我知道我们都必须从某个地方开始,我甚至无法开始解释我对这个社区迄今所提供的所有帮助有多感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值