我使用以下格式的json文件
{
"project1": {
"alias1": {
"command":"somecommand for alias1"
}
},
"project2": {
"alias2": {
"command":"somecommand for alias2"
},
"alias3": {
"command":"somecommand for alias3"
}
}
我想提取数据并以下列格式将输出打印为Dict
{
'alias1':'command', # Command for alias1
'alias2':'command', # Command for alias2
'alias3':'command' # Command for alias3
}
如何在python2中实现这一目标?
答案 0 :(得分:1)
首先,您的源JSON中存在错误,需要关闭"}"
在修复之后,您可以使用json.loads
将其转换为Python变量,然后使用Python循环和条件运行它以提取您想要的内容。像
ss = json.loads( """ # JSON source as above
# etc
""")
res = {}
for proj,v in ss.items():
for alias,d in v.items():
if alias.startswith("alias"):
res[alias] = d["command"]
res
是您想要的字典,您可以使用json.dumps
和(可能)indent=0
和sort_keys=True
答案 1 :(得分:0)
不确定这是否是您要找的:
result = {value:v for key in a for value in a[key] for item in a[key][value] for k,v in a[key][value].items()}
{'alias2': 'somecommand for alias2',
'alias3': 'somecommand for alias3',
'alias1': 'somecommand for alias1'}
答案 2 :(得分:0)
你可以这样尝试
def dict_parse(dict):
dict_new = {}
keys = dict.keys()
for k in keys:
key_new = dict[k].keys()
for i in key_new:
dict_new[i] = dict[k][i]
return dict_new
输出将是:
{'alias1': {'command': 'somecommand for alias1'},
'alias2': {'command': 'somecommand for alias2'},
'alias3': {'command': 'somecommand for alias3'}}
我认为你应该根据这个尝试这个,你可以得到你的确切输出
答案 3 :(得分:0)
你可以用这个
print({i:j['command'] for k,v in df.items() for i,j in v.items() if i.startswith('alias')})