访问python json键时需要传递参数
我需要使用命令行参数访问json文件 我的代码是python.py:访问python json键时需要传递参数,python,json,bash,parameters,arguments,Python,Json,Bash,Parameters,Arguments,我需要使用命令行参数访问json文件 我的代码是python.py: ######################################### import json import sys from sys import argv from pprint import pprint with open('cdh/cdh5.json') as data_file: data = json.load(data_file) pprint(data['projects']['abc
#########################################
import json
import sys
from sys import argv
from pprint import pprint
with open('cdh/cdh5.json') as data_file:
data = json.load(data_file)
pprint(data['projects']['abcd']['track-branch'])
#################################################
因此,在执行此python脚本时,我需要从命令行传递abcd,而不是项目abcd
eg1:python.py abcd
将执行:pprint(数据['projects']['abcd']['track-branch'])
eg2:python.py efgh
将执行:pprint(数据['projects']['efgh']['track-branch'])
我试过这样做:-
pprint(数据['projects']['sys.args']['track-branch'])
但它给出了以下错误:
pprint(data['projects']['sys.argv']['track-branch'])
KeyError: 'sys.argv'
您的思路是正确的,但sys.argv是一个数组,主模块位于第0个索引处,每个连续的命令行参数位于索引1、2等处。您应该将代码更改为:
pprint(data['projects'][sys.argv[1]]['track-branch'])
pprint(data['projects'][sys.argv[1]]['track-branch'])
要访问从命令行传入的参数,需要使用
sys.argv
,这是正确的
但是,您应该按原样使用它,而不是像您正在做的那样将其作为字符串传递
另外,sys.argv
是命令行中所有参数的列表,sys.argv
的第一个元素是执行的文件(如python.py
)。所以你需要使用第二个元素。范例-