Python:替换JSON文件中的字符串

2024-04-30 06:37:58 发布

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

我是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"
        }]
}

这里我想用图片列表中的内容替换图片名称。这是第一次很好用。。不会更改第二和第三个循环中的值。。我错过什么了吗?请帮忙

提前谢谢


Tags: 文件字符串jsoncontentchangereplacef1images
1条回答
网友
1楼 · 发布于 2024-04-30 06:37:58

你的错误的索引错误。您不断更改相同的值。 其次,replace()函数不是更改原始值

import json


with open("blueprint_image1.txt", "r") as f1:
    content = json.load(f1)

images = ['redhat_q1', 'redhat_q2', 'redhat_q3']

change_content = content

for i in range(len(images)):
    change_content["blueprints"][i]["imagename"] = images[i]
    print(change_content["blueprints"][i]["imagename"])

这对你有用

在循环中定义总是好的。不需要编写额外的代码

相关问题 更多 >