如何将Python代码转换为Graphviz格式
我找不到关于如何使用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脚本时,输出结果会是: