2016-04-13 14 views
0

Sadece Networkx kullanmaya başladım ve küçük bir sorun yaşıyorum. Ben hatayıEn büyük bağlantılı bileşenlere sahip bir alt belge oluşturun.

"UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 76: ordinal not in range(128)".

döndüren benim grafik G'nin bağlı bir alt grafiğini oluşturmak çalıştığınızda Ne anlama geldiğini hiçbir fikrim yok.

import networkx as nx; 
G = nx.read_gml(r'path.gml'); 

cluster= nx.average_clustering(G); 
H = G.subgraph(nx.connected_components(G),key=len); 
diam=nx.diameter(H); 

Her türlü yardım gerçekten takdir edilmektedir!

cevap

1

Bu, muhtemelen GML dosyasındaki unicode karakterler nedeniyle read_gml başarısız olur.

this note'a göre, GML, HTML özel karakterleri olarak görünen özel karakterlerle kodlanmış ascii olmalıdır.

Yapabileceğiniz bir kaç şey bunu düzeltmek için vardır:

  1. grafiği oluştururken, decode senin düğüm etiketleri (aynı zamanda, hem ilgili Python Unicode guidance lütfen unutmayın) this question belirtildiği üzere.

  2. Düğüm etiketlerindeki karakterler ile sonuçta dosyaya yazılanlar arasında kendi eşlemenizi oluşturun. Bunlar işlevler olarak temsil edilebilir ve kod çözme işlevitarafından destringizer olarak kullanılabilir.

Bu çözümlerin her ikisi de GML dosyasının tam denetimini elinizde bulundurmanız anlamına gelir. GML'yi tam olarak kontrol edemediyseniz, basit bir dosya olarak okuyabilir ve form etiketinin kalıplarını arayabilir -> "-> çeşitli karakterler->" ve daha sonra bu etiketleri değiştirmeyi deneyin. Yukarıda önerilen # 2 gibi.

Bu yardımcı olur umarım.

+0

Teşekkür ederim bunu deneyeceğim :) – Doule

İlgili konular