我正在嘗試更新 JSON 檔案中的值,在 JSON 轉儲 python 添加額外的 "" 值之后。我正在嘗試洗掉。你能有人幫忙嗎。
原始 JSON 檔案資料
{
"ProjectBranch": "Dev",
"BaselineRestore": {
"releaseName": "02",
"useProcessedBaseline": false,
"incrementalRun": false,
"breakPipelinePostRestore": false,
"releaseYear": "2022",
"debugMode": true
}
}
我的python腳本
import os
import glob
import json
import shutil
import re
cwd = os.getcwd()
pipeline_config_file = os.path.join(cwd, "config", "test.json")
with open(pipeline_config_file, "r ") as f:
data = json.load(f)
incrementalRun = str(data['BaselineRestore']['incrementalRun']).lower()
data['BaselineRestore']['incrementalRun'] = 'true'
data['BaselineRestore']['incrementalRun'] = data['BaselineRestore']['incrementalRun'].strip()
#data = data.replace('"true"', 'true')
with open(pipeline_config_file, 'w') as f:
json.dump(data, f, indent=4)
腳本輸出
{
"ProjectBranch": "Dev",
"BaselineRestore": {
"releaseName": "02",
"useProcessedBaseline": false,
"incrementalRun": "true",
"breakPipelinePostRestore": false,
"releaseYear": "2022",
"debugMode": true
}
預期資料
{
"ProjectBranch": "Dev",
"BaselineRestore": {
"releaseName": "02",
"useProcessedBaseline": false,
"incrementalRun": true,
"breakPipelinePostRestore": true,
"releaseYear": "2022",
"debugMode": true
}
}
uj5u.com熱心網友回復:
您的行在此處data['BaselineRestore']['incrementalRun'] = 'true'放置一個字串'true',而不是True布林值。這就是造成兩者差異的原因。
你應該使用:
import os
import glob
import json
import shutil
import re
cwd = os.getcwd()
pipeline_config_file = os.path.join(cwd, "config", "test.json")
with open(pipeline_config_file, "r ") as f:
data = json.load(f)
data['BaselineRestore']['incrementalRun'] = True
with open(pipeline_config_file, 'w') as f:
json.dump(data, f, indent=4)
假設您的目標是專門更新false到truefor incrementalRun。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/421594.html
標籤:
