使用 neo4j-import 正确转义输入数据
neo4j-import 用于填充新的空数据库。它不能用于导入到现有数据库中。 |
使用 neo4j-import
导入数据时,请务必在继续操作之前查看所需的 CSV 文件结构和注意事项。
转义 CSV 中的逗号
这适用于转义您用作逗号替代的任何分隔符(如果指定)。Neo4j 仅支持单字符分隔符。 |
考虑以下字符串:Use the force, Luke!
如果您想从 CSV 文件导入此字段到 neo4j 中,则必须转义该逗号。标准方法是在字段周围简单地加上引号。neo4j-import
将知道所有未转义引号内的内容都属于同一个字段。
CSV 文件
:ID,:LABEL,movie,line
1,Movie,Star Wars,"Use the force, Luke!"
导入到空数据库
$ neo4j-import --into data/graph.db.1 --nodes simple_escape_test.csv
使用 Cypher 验证
neo4j> match (n:Movie) return n.line;
+------------------------+
| n.line |
+------------------------+
| "Use the force, Luke!" |
+------------------------+
1 row
现在,如果我们想在一个电影节点中包含多个数组行呢?
转义 CSV 中的数组分隔符
考虑以下数组:{[Use the force, Luke!], [Help me, Obi-Wan Kenobi; you’re my only hope.]}
如果您想从 CSV 文件将此数组导入到 neo4j 中的节点属性中,则必须选择一个在数组中不存在的单字符分隔符。默认值为分号字符。但是,这在我们的示例中不起作用!我们可以轻松地用类似管道(|)字符替换它,但是如果您的数据中可能存在这些字符,则需要找到更模糊的字符,例如 §。
CSV 文件
:ID,:LABEL,movie,lines:string[]
1,Movie,Star Wars,"Use the force, Luke!§Help me, Obi-Wan Kenobi; you're my only hope."
使用 Cypher 验证
neo4j> match (n:Movie) return n;
+-----------------------------------------------------------------------------------------------------------+
| n |
+-----------------------------------------------------------------------------------------------------------+
| Node[0]{movie:"Star Wars",lines:["Use the force, Luke!","Help me, Obi-Wan Kenobi; you're my only hope."]} |
+-----------------------------------------------------------------------------------------------------------+
1 row
字符串数组列的标题需要使用 :string[] ,区分大小写。 |
此页面对您有帮助吗?