Я хочу создать граф из коллекции Mongodb. Узлы этого графика должны быть изобретателями патентов, и они должны быть связаны общим идентификатором (который представляет общий патент). Вот код, который я написал, чтобы печатать только узлы.Мне нужно создать социальную сеть, используя Python и Mongodb
from pymongo import MongoClient
from pymongo import ASCENDING, DESCENDING
import networkx as nx
import matplotlib.pyplot as plt
uri ="mongodb://127.0.0.1:27017/Patent"
client = MongoClient(uri)
righe ={1:'CODINV2', 2:'INCY', 3:'INNAME', 4:'INADDR',5:'INADOTH',6:'INCITY',7:'INCOUNTY',8:'INREGION',9:'INSTATE',10:'INZIP',11:'nuts3',12:'alive',13:'APPLN_ID',14:'PROGR'}
db = client['Patent']
collection2 = db['projects']
collection = db['myprova']
nodi={}
i=0
G=nx.Graph()
k=1 #this parameter represents the fact that an inventor is still alive
db.projects.aggregate([{"$match": {"$and": [{"alive": k}, {"INCY": "IT"}]}}, {"$group": {"_id": "$CODINV2"}}, {"$out": "myprova"}], allowDiskUse=True)
inventor = collection.find()
newList=[]
for inv in inventor:
newList.append(inv)
print newList
for idi in newList:
nodi[idi] = i
G.add_node(i)
i += 1
#print(G.number_of_nodes())
nx.draw(G)
plt.show()
Атрибут CODINV2 представляет собой идентификатор каждого изобретателя. Выполнение этого кода эти ошибки появляются в консоли:
http://i.stack.imgur.com/BC9wd.png
Как я могу решить эту проблему? Вы знаете другое решение для достижения моей цели? Я новичок в MondoDB и Python
Там нет абсолютно никакой необходимости в скриншоте, скопируйте сообщение об ошибке на ваш первоначальный вопрос и убедитесь, что он показывает dict или даже лучше предоставляет сведения об этом типе. Очевидно, что отсутствует поддержка хэша. – Marged