2017-05-08 126 views
1

做graph.run()这是我创建从一个txt文件的图形py2neo代码:缺少关键`scheme`错误而在Neo4j的

import csv 
import re 
from py2neo import Graph,Node,Relationship 
graph = Graph("http://localhost:7474/browser/") 
with open("<>") as infile: 
    row_num = 0 
    for row in infile: 
     row1 = re.split(r'\s{2,}', row[6:13]) 
     row2 = re.split(r'\s{2,}', row[16:76]) 
     #print len(row2[0]),row2[0] 
     if(row_num<1000): 
      x = len(row1[0]) 
      code = Node("Dis_code", Code=row1[0]) 
      valid = Node("Valid", Valid=row[14]) 
      name = Node("Name_dis", Name=row2[0]) 
      code_is_valid = Relationship(code,"valid or not",valid) 
      code_name= Relationship(code, "has name", name) 
      #x=len(row1[0]) 
      print x 
      parent = [] 
      if (x>3): 
       row_num = row_num + 1 
       print row1[0][:-1] 
       for cod in graph.run("MATCH (p:Dis_code{Code:row1[0][:-1]}) RETURN p"): 
        print cod 
        code_parent = Relationship(code,"has_parent",cod) 

我得到以下错误:

Traceback (most recent call last): 
    File "C:/Users/<>/PycharmProjects/graph/data_model", line 24, in <module> 
    for cod in graph.run("MATCH (p:Dis_code{Code:row1[0][:-1]}) RETURN p"): 
    File "C:\Python27\lib\site-packages\py2neo-4.0.0b2-py2.7.egg\py2neo\graph.py", line 654, in run 
    return self.begin(autocommit=True).run(statement, parameters, **kwparameters) 
    File "C:\Python27\lib\site-packages\py2neo-4.0.0b2-py2.7.egg\py2neo\graph.py", line 380, in begin 
    return Transaction(self, autocommit) 
    File "C:\Python27\lib\site-packages\py2neo-4.0.0b2-py2.7.egg\py2neo\graph.py", line 804, in __init__ 
    self.session = driver.session() 
    File "build\bdist.win32\egg\neo4j\v1\bolt.py", line 54, in session 
neo4j.v1.security.Unauthorized: Unsupported authentication token, missing key `scheme` 

run module's documentation我没有找到任何称为scheme的内容。那么,我在哪里出错了?

+0

只是检查(我不是py2neo的专家),但是你有没有正确的URL(http:// localhost:7474/browser /)?你可以尝试只用Graph()...,因为你似乎想连接到本地主机数据库? –

+0

是的,URL是正确的,我也尝试过Graph(),但是我得到了相同的错误 –

+0

不够公平。你可以试试: from py2neo import图表,节点,关系 graph = Graph(“http:// localhost:7474/browser /”) 如果这样也行不通,你可以添加用户名密码你的数据库在那里的组合: from py2neo import图表,节点,关系 graph = Graph(“http:// @localhost:7474/browser /”)...我们可以确定这两条线如果这个问题是与身份验证或与您的代码的另一部分 –

回答

0

“丢失的钥匙”信息在技术上是正确的,但对您无益。提供线索的部分错误是“neo4j.v1.security.Unauthorized”。出于某种原因,您尝试访问浏览器应用程序URI(http://localhost:7474/browser/)而不是实际的数据库URI(http://localhost:7474/db/data/)。你也没有提供任何凭据。你真正需要的这里是这样的:

graph = Graph("http://localhost:7474/db/data/", user="neo4j", password="s3cr3t!") 

(使用过程中,正确的密码为您的服务器),可以在这里找到了Graph构造

详细信息 - > http://py2neo.org/v3/database.html#the-graph