我有一小段代码:
def extract_nodes():
for i in json.load(open('/home/ubuntu/slcakbot_openNMS/CLEAR/out.txt'))["node"]:
try:
socket.inet_aton(i["label"])
print(i["label"])
print(i["id"])
#return { 'ip': i["label"], 'id': i["id"]} # i need to return these values
except Exception as e:
pass
我需要创建一个dict并将其返回给调用函数,我不知道如何创建一个dict并从这里返回。一旦返回,我如何使用字典值
答案 0 :(得分:2)
键“id”和“label”可能有多个值,因此您应该考虑使用list。 这是我的代码
ca-app-pub-XXXXXXXXXX/XXXXXXXXXX
我希望它可以工作:)
答案 1 :(得分:1)
你可以使用一个生成器,但我猜你是python的新手,这会更简单:
def extract_nodes():
return_data = dict()
for node_datum in json.load(open('/home/ubuntu/slcakbot_openNMS/CLEAR/out.txt'))["node"]:
try:
socket.inet_aton(node_datum["label"])
return_data[node_datum["id"]] = { 'ip': node_datum["label"], 'id': node_datum["id"]}
print(node_datum["label"])
print(node_datum["id"])
#return { 'ip': node_datum["label"], 'id': node_datum["id"]} # i need to return these values
except Exception as err:
print err
pass
return return_data
至于使用它,
node_data = extract_nodes()
for key, node_details in node_data.items():
print node_details['ip'], node_details['id']
答案 2 :(得分:0)
def extract_nodes():
to_return_dict = dict()
for i in json.load(open('/home/ubuntu/slcakbot_openNMS/CLEAR/out.txt'))["node"]:
try:
socket.inet_aton(i["label"])
to_return_dict[i['id']] = i['label']
print(i["label"])
print(i["id"])
#return { 'ip': i["label"], 'id': i["id"]} # i need to return these values
except Exception as e:
pass
return to_return_dict
这应该这样做......让我知道它是否有效!
编辑:
关于如何使用它:
id_label_dict = extract_nodes()
print(id_label_dict['ip']) # should print the label associated with 'ip'