我需要通过命令行参数解析器将json文件参数覆盖到python字典。因为,json文件位于当前工作目录中,但它的名称可以是动态的,所以我想要如下所示: -
python python_script --infile json_file
if __name__ == "__main__":
profileInfo = dict()
profileInfo['profile'] = "enterprisemixed"
profileInfo['nodesPerLan'] = 50
{
"profile":"adhoc",
"nodesPerLan" : 4
}
我尝试添加以下行,但不知道如何将此json数据加载到python词典: -
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--infile', nargs = 1, help="JSON file to be processed",type=argparse.FileType('r'))
arguments = parser.parse_args()
答案 0 :(得分:1)
使用--infile
的名称阅读JSON文件并更新profileInfo
:
import json
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--infile', nargs=1,
help="JSON file to be processed",
type=argparse.FileType('r'))
arguments = parser.parse_args()
# Loading a JSON object returns a dict.
d = json.load(arguments.infile[0])
profileInfo = {}
profileInfo['profile'] = "enterprisemixed"
profileInfo['nodesPerLan'] = 50
print(profileInfo)
# Overwrite the profileInfo dict
profileInfo.update(d)
print(profileInfo)