用python提取链序列

用python提取链序列,python,Python,我有一本Python字典,它描述了在各种主机上运行的一些二进制文件。其中一些是相互连接的。问题是-如何从它们构造链?如果输入和输出相同,则连接二进制文件。 例如: {"binary1": "bin1", "input": "127.0.0.1:2222", "output": "127.0.0.2:3333", "other_stuff": "....1111..."} {"binary2": "bin2", "input": "127.0.0.2:3333", "output": "", "o

我有一本Python字典,它描述了在各种主机上运行的一些二进制文件。其中一些是相互连接的。问题是-如何从它们构造链?如果输入和输出相同,则连接二进制文件。 例如:

{"binary1": "bin1", "input": "127.0.0.1:2222", "output": "127.0.0.2:3333", "other_stuff": "....1111..."}
{"binary2": "bin2", "input": "127.0.0.2:3333", "output": "", "other_stuff": "....2222..."}
{"binary3": "bin3", "input": "128.0.0.1:5555", "output": "127.0.0.2:7777", "other_stuff": "....3333..."}
{"binary4": "bin4", "input": "127.0.0.2:8888", "output": "127.0.0.2:4444", "other_stuff": "....4444..."}
{"binary5": "bin5", "input": "127.0.0.1:9999", "output": "127.0.0.2:8888", "other_stuff": "....5555..."}
{"binary6": "bin6", "input": "127.0.0.5:1111", "output": "127.0.0.9:1234", "other_stuff": "....6666..."}
{"binary7": "bin7", "input": "", "output": "127.0.0.1:9999", "other_stuff": "....7777..."}
{"binary8": "bin8", "input": "127.0.0.1:2222", "output": "127.0.0.2:3333", "other_stuff": "....8888..."}
{"binary9": "bin9", "input": "", "output": "127.0.0.5:1111", "other_stuff": "....9999..."}
{"binary0": "bin0", "input": "", "output": "", "other_stuff": "....0000..."}
预期产出:

bin1 -> bin2
bin7 -> bin5 -> bin4
bin9 -> bin6
每个二进制文件不需要输入和输出。
最后,我需要列出链并绘制它们,但这是一个额外的好处:)是否存在一些python模块可以帮助提取序列并足够快地完成它?(数据大小约为10000个二进制文件)。
提前谢谢

另外,实际上我需要到python模块的链接来帮助我解决这个问题(而不是算法),这就是全部

编写自定义代码来完成您要求的任务将非常简单,但是由于您指定了需要“到python模块的链接”,那么我的建议是进行研究。从外观上看,您的问题似乎相当于构建有向图


编辑:这也回答了您关于打印图形的额外问题。参见示例。

No)))我在20年前完成了上一个家庭作业。在名称字段中使用动态键是一个愚蠢的想法。这个子问题(即如何从
{“binary1”:“bin1”,…}
中查找
“bin1”
)应该首先解决。谢谢,@mac。你能告诉我如何在这个库中使用这个完整的dicts吗?首先,我需要从所有成员中提取输入-输出值,对吗?@DominiCane-我不是python图形专家,但关键概念是
IP:port
是图形的节点,每个字典定义一条边(请参见链接示例中的
add_node
add_edge
)<代码>bin1,
bin2
。。。是字典中提到的
输入的“别名”
,因此您必须在定义图形(更简单但更密集的过程)或显示图形时保留别名的映射
{input(IP:port):binX}
(轻量级,但可能需要对库中的
节点
类进行子类化)。。。