使用pythonigraph和mysql结果创建有向加权图

2024-10-06 13:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythonigraph并尝试从MySQL查询结果生成一个有向加权图。我在数据集中的一个表上运行一个查询,我想基于它创建一个图。基本上,我的查询将返回以下内容:

A B Weight
1 2 3
2 4 5

有人能解释一下如何使用python igraph来实现这一点吗?有可能吗?在


Tags: 数据mysqlweightigraphpythonigraph
1条回答
网友
1楼 · 发布于 2024-10-06 13:31:08

假设您使用适当的DB-api2.0兼容MySQL模块直接从Python查询数据库,那么可以使用Graph.DictList方法来实现您的目标。^{}从字典表示的列表中创建一个图,在获取行时,可以配置MySQL查询游标生成字典而不是元组。这是未经测试的,因为我手头没有MySQL数据库,但它显示了一个总体思想:

import MySQLdb
import MySQLdb.cursors

conn = MySQLdb.connect(host='...', cursorclass=MySQLdb.cursors.DictCursor)

cursor = conn.cursor()
cursor.execute("SELECT source, target, weight FROM whatever")
graph = Graph.DictList(vertices=None, edges=cursor, edge_foreign_keys=('source', target'))

这里的重要部分是在连接到数据库时使用cursorclass=MySQLdb.cursors.DictCursor。上面的代码片段还利用了cursor是iterable的这一事实,因此它可能无法与其他数据库模块一起工作,但是使用一个通用的DB-api2.0游标并使其可以通过使用iter(cursor.fetchone, None)很容易。在

另外,请确保您在edge_foreign_keys中传递的两个列名与MySQL查询中包含源节点和目标节点的列的名称匹配。查询结果中的任何其他列都将另存为边属性。在

相关问题 更多 >