def parse_saaf_json(filename):
with open(filename) as json_file:
saaf_json = json.load(json_file)
#print saaf_json
G = nx.MultiDiGraph()
#graphs = []
i = 0
for invoke, invoke_info in saaf_json.iteritems():
for backtrack in invoke_info:
j = 0
for node in backtrack:
node = dict((k.lower(), v) for k, v in node.iteritems())
node['parent'] = node['parent'] + i
node['nodeid'] = node['nodeid'] + i
node['invoke'] = invoke
new_node = node['nodeid']
new_edge = (node['parent'], node['nodeid'])
if not G.has_node(new_node):
G.add_node(new_node, attr_dict = node)
if node['parent'] == i-1:
node['parent'] = i
elif not G.has_edge(*new_edge):
G.add_edge(*new_edge)
j += 1
i += j
#print i
#print G.edges()
#print json.dumps(json_graph.node_link_data(G), sort_keys = True, indent = 4)
#print
#graphs.append(G)
#return graphs
return G
graph_networkx.py 文件源码
python
阅读 59
收藏 0
点赞 0
评论 0
评论列表
文章目录