если l oop внутри с открытым файлом: неожиданный EOF при разборе - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь изменить содержимое файла 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

...