يقوم كاتب NetworkX GEXF بإنشاء معرف الحافة - الأعداد الصحيحة تبدأ من 0 - إذا لم يتم تحديد واحد. نظرًا لأنك أضفت حافة ثانية بدون معرف (Edge 1،2) تم استخدام معرف 0 والذي يصطدم بمعرف الحافة الأول.
قد يكون هذا خطأ وبالتأكيد يسبب مشكلة في حالة الاستخدام الخاصة بك. أحد الحلول هو ضبط معرف الحافة بشكل صريح عند إضافة العقدة.
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})]