Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Networkx-如何更改边缘id';s_Python_Networkx_Graphml - Fatal编程技术网

Python Networkx-如何更改边缘id';s

Python Networkx-如何更改边缘id';s,python,networkx,graphml,Python,Networkx,Graphml,我正在使用networkx创建graphml文件。我有平行链接,所以我使用了多重有向图函数。生成文件后,我在中打开它,但我没有在节点之间创建的所有连接。我仅有的连接(边)是为平行链接创建的连接。我意识到这是因为graphml文件对于所有边只有两个边ID(“0”和“1”)。我修改了文件并为每个边设置了唯一的id。例如: <edge id="0" source="Hostname_A" target="Hostname_B"> <data key="d1">100GE1/

我正在使用networkx创建graphml文件。我有平行链接,所以我使用了多重有向图函数。生成文件后,我在中打开它,但我没有在节点之间创建的所有连接。我仅有的连接(边)是为平行链接创建的连接。我意识到这是因为graphml文件对于所有边只有两个边ID(“0”和“1”)。我修改了文件并为每个边设置了唯一的id。例如:

<edge id="0" source="Hostname_A" target="Hostname_B">
  <data key="d1">100GE1/0/0</data>
  <data key="d2">100GE1/0/0</data>
</edge>
<edge id="1" source="Hostname_A" target="Hostname_B">
  <data key="d1">100GE1/0/1</data>
  <data key="d2">100GE1/0/1</data>
</edge>
<edge id="2" source="Hostname_B" target="Hostname_C">
  <data key="d1">100GE1/1/0</data>
  <data key="d2">100GE1/0/0</data>
</edge>
但我意识到它没有改变边缘id,只是为该边缘添加了另一个属性:

<edge id="0" source="Hostname_A" target="Hostname_B">
  <data key="d1">100GE1/0/0</data>
  <data key="d2">100GE1/0/0</data>
  <data key="d3">1</data>   <-- This is the idcount value
</edge>

100GE1/0/0
100GE1/0/0

1解决了这个问题。如果需要更改多向图中的“边ID”,则必须使用如下“键”属性:

g.add_edge(host,neighbor,source = intsource, destination = intdest, id=idcount)
g.add_edge(host,neighbor,key=idcount) <-- idcount is an int value
g.add\u边缘(主机、邻居、密钥=idcount)