如何将Python代码转换为Graphviz格式

0 投票
1 回答
628 浏览
提问于 2025-04-17 20:43

我找不到关于如何使用graphviz的任何说明。我有一段Python的网络爬虫代码,它会输出一个网站列表,我想改变输出的格式,但不知道怎么让graphviz能看得懂。如果有人能给我指个方向,提供一些建议,或者给我链接一些Python到graphviz的教程或说明,我会非常感激。

当传入“www.google.com”作为参数时的输出:

{'www.google.com': {'news.google.com', 'play.google.com', 'www.youtube.com', 'mail.google.com', 'maps.google.com', 'plus.google.com', 'drive.google.com', 'accounts.google.com'}}

1 个回答

0

我不太清楚你想怎么在这个应用中使用GraphViz。不过,根据你描述的字典,你可以生成一个GraphViz脚本来绘制它,方法如下:

gr = {'www.google.com': ['news.google.com', 'play.google.com', 'www.youtube.com',
      'mail.google.com', 'maps.google.com', 'plus.google.com',
      'drive.google.com','accounts.google.com']}

print ("digraph G {\nrankdir=LR;")
n = 0
lookup = {}
for root in gr.keys():
    if not (root in lookup):
        lookup[root] = n
        print ('n%d [label="%s"];' % (n,root))
        n += 1
    for leaf in gr[root]:
        if not (leaf in lookup):
            lookup[leaf] = n
            print ('n%d [label="%s"];' % (n,leaf))
            n += 1
        print ('n%d -> n%d;' % (lookup[root],lookup[leaf]))

print ("}")

当你通过dot运行这个Python脚本时,输出结果会是:

在这里输入图片描述

撰写回答