我是python新手,我的要求是替换大json文件中的字符串。我的代码只替换字符串1次。不知道为什么它没有第二次更新
#!/bin/bash
import json
with open("blueprint_image1.txt", "r") as f1:
content = json.load(f1)
content1 = content["blueprints"][0]["imagename"]
content2 = content["blueprints"][1]["imagename"]
content3 = content["blueprints"][2]["imagename"]
images = ['redhat_q1', 'redhat_q2', 'redhat_q3']
change_content = content
for i in images:
change_content["blueprints"][0]["imagename"] = content["blueprints"][0]["imagename"].replace(content1, i)
print change_content["blueprints"][0]["imagename"]
change_content["blueprints"][1]["imagename"] = content["blueprints"][0]["imagename"].replace(content2, i)
print change_content["blueprints"][1]["imagename"]
下面是我从中获取值的文件
{
"blueprints": [{
"blueprintname": "ABC",
"imagename": "REDHAT_7_2020Q1"
}, {
"blueprintname": "XXXX",
"imagename": "REDHAT_7_2020Q2"
}, {
"blueprintname": "YYY",
"imagename": "REDHAT_7_2020Q3"
}]
}
这里我想用图片列表中的内容替换图片名称。这是第一次很好用。。不会更改第二和第三个循环中的值。。我错过什么了吗?请帮忙
提前谢谢
你的错误的索引错误。您不断更改相同的值。 其次,replace()函数不是更改原始值
这对你有用
在循环中定义总是好的。不需要编写额外的代码
相关问题 更多 >
编程相关推荐