如果未指定一个网络gexf Writer,则会生成一个边界ID-整数。由于您在没有ID的情况下添加了第二个边缘(边缘1,2),因此使用了0的ID,与您的第一个边缘ID相撞。
这可能是一个错误,当然会导致您的用例问题。一个解决方法是在添加节点时明确设置边缘ID。
In [1]: import networkx as nx
In [2]: G = nx.read_gexf('first.gexf')
In [3]: G.edges(data=True)
Out[3]: [('1', '0', {'id': '0'})]
In [4]: G.add_edge(1,2,id=1)
In [5]: G.edges(data=True)
Out[5]: [('1', '0', {'id': '0'}), (2, 1, {'id': 1})]