graph_networkx.py 文件源码

python
阅读 59 收藏 0 点赞 0 评论 0

项目:Android-Repackaged-App-Detection-System 作者: M157q 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号