【问题标题】:Error in importing data into neo4j via csv通过 csv 将数据导入 neo4j 时出错
【发布时间】:2020-07-21 08:03:50
【问题描述】:

我是 neo4j 的新手。
我无法弄清楚我做错了什么?请帮忙。
LOAD CSV WITH HEADERS FROM "file:///C:\Users\Chandra Harsha\Downloads\neo4j_module_datasets\test.csv" as line
    MERGE (n:Node{name:line.Source})
    MERGE (m:Node{name:line.Target})
    MERGE (n)-[:TO{distance:line.dist}]->(m)

错误信息:
无效的输入“s”:预期指定 unicode 字符的四个十六进制数字(第 1 行,第 41 列(偏移量:40)) "从 "file:///C:\Users\Chandra Harsha\Downloads\neo4j_module_datasets\test.csv" 作为行加载带有标题的 CSV"

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    这里有两个问题。

    直接的错误是路径中的反斜杠被视为转义字符而不是文件夹分隔符 - 您要么必须转义反斜杠(只需将它们加倍),要么改用正斜杠。例如:

    LOAD CSV WITH HEADERS FROM "file:///C:\\Users\\Chandra Harsha\\Downloads\\neo4j_module_datasets\\test.csv" as line
        MERGE (n:Node{name:line.Source})
        MERGE (m:Node{name:line.Target})
        MERGE (n)-[:TO{distance:line.dist}]->(m)
    

    然而 - 作为安全预防措施,Neo4j 不允许您从文件系统上的任意位置加载文件。相反,您应该将要导入的文件移动到数据库下的import 文件夹中。如果您使用的是 Neo4j Desktop,您可以通过选择您的数据库项目并单击“打开文件夹”上的小向下箭头图标,从列表中选择“导入”来找到它。

    将 CSV 文件放入其中,然后在文件空间中使用其文件名。比如:

    LOAD CSV WITH HEADERS FROM "file:///test.csv" as line
        MERGE (n:Node{name:line.Source})
        MERGE (m:Node{name:line.Target})
        MERGE (n)-[:TO{distance:line.dist}]->(m)
    

    您仍然可以使用 import 目录下的文件夹 - 以 file:/// 开头的任何内容都将相对于该导入文件夹进行解析,因此以下内容也可以:

    LOAD CSV WITH HEADERS FROM "file:///neo4j_module_datasets/test.csv" as line
        MERGE (n:Node{name:line.Source})
        MERGE (m:Node{name:line.Target})
        MERGE (n)-[:TO{distance:line.dist}]->(m)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多