Я пытаюсь изменить содержимое файла json на основе переданного флага. Вот фрагмент кода
import json
import argparse
def updateConfFile(confFileFilePath, connDetail, resetproxy):
with open(confFileFilePath, "r") as confFile:
jsonData = json.load(confFile)
jsonData["CloudConnectMgmtConfig"]["connDetail"] = eval(connDetail)
if (resetProxy == "true"):
jsonData["CloudConnectMgmtConfig"]["connCfg"]["proxyEnabled"] = eval("false")
jsonData["CloudConnectMgmtConfig"]["connCfg"]["proxyHost"] = eval("")
return jsonData
## Main
parser = argparse.ArgumentParser()
parser.add_argument("connfilepath")
parser.add_argument("connDetail", nargs='?', const=1, default="{}")
parser.add_argument("resetProxy", nargs='?', const=1, default="false")
args = parser.parse_args()
jsonData=updateConfFile(args.connfilepath, args.connDetail, args.resetProxy)
# Write a provisioning json
with open(args.connfilepath, 'w') as outfile:
json.dump(jsonData, outfile)
вызов скрипта
python updateDataConnConf.py /path/to/conffile.conf "" true
Я получаю следующую ошибку
File "updateDataConnConf.py", line 7, in updateConfFile
jsonData["CloudConnectMgmtConfig"]["connDetail"] = eval(connDetail)
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
Я использую Python 2.7.5