Python 3.x 向gexf文件中的节点和边添加“开始”和“结束”属性

Python 3.x 向gexf文件中的节点和边添加“开始”和“结束”属性,python-3.x,graph,networkx,Python 3.x,Graph,Networkx,我有一个.gexf文件,其中包含带有ID和标签的节点和边。我使用networkx从.gml文件生成了这个.gexf文件。下面是代码: import networkx as nx G = nx.read_gml('data/gml/test.gml') # read in gml file as Graph nx.write_gexf(G, "output/test.gexf") # write to gexf format 接下来,我要做的是为文件中的每个节点和每条边添加start和end属

我有一个.gexf文件,其中包含带有ID和标签的节点和边。我使用networkx从.gml文件生成了这个.gexf文件。下面是代码:

import networkx as nx

G = nx.read_gml('data/gml/test.gml') # read in gml file as Graph
nx.write_gexf(G, "output/test.gexf") # write to gexf format
接下来,我要做的是为文件中的每个节点和每条边添加start和end属性

所以基本上,我想要这个:

不幸的是,我找不到networkx和pygexf的任何文档,说明如何编写动态gexf文件并向每个已经存在的节点和边缘添加START和end属性。有人能帮我吗

更新: 当我使用

nx.set_edge_attributes(G, 'start', '2000-02-20')
nx.set_edge_attributes(G, 'end', '2000-02-22')
要设置边缘属性,我将获得正确的输出,例如:

<edge id="0" source="great" target="wait" weight="0.998675772419067" start="2000-02-20" end="2000-02-22" />
我得到:

<node id="blue" label="blue">
    <attvalues>
      <attvalue for="0" value="2000-02-20" />
      <attvalue for="1" value="2000-02-22" />
    </attvalues>

如何在节点标记中设置start和endattribute?

遇到了同样的问题。Networkx 2.1仍然不支持此功能,但有一个解决方案:

像往常一样编写.gexf文件 然后打开.gexf文件 转到数据实验室并按“合并列”。现在选择开始和结束列以及“合并策略”:“创建时间间隔”。现在,间隔列中填充了 转到文件>导出>图形文件。。。然后选择文件格式:GEXF文件。节点现在包含“开始”和“结束”属性。
当我不得不做同样的事情时,我使用BeautifulSoup直接修改gexf,而不使用networkx。任何xml库都可以帮助您,但networkx没有对动态图形的直接支持。我确实可以使用解决方案,因为我需要将networkx图形的开始、结束元数据(如果可能)与GEXF格式结合起来。完成后,我会在这里发布我的解决方案。它可能涉及在生成GEXF之后修改XML结构。
<edge id="0" source="great" target="wait" weight="0.998675772419067" start="2000-02-20" end="2000-02-22" />
nx.set_node_attributes(G, 'start','2000-02-20')
nx.set_node_attributes(G, 'end','2000-02-22')
<node id="blue" label="blue">
    <attvalues>
      <attvalue for="0" value="2000-02-20" />
      <attvalue for="1" value="2000-02-22" />
    </attvalues>