在cypher中与LOAD CSV结合使用

时间:2016-06-07 19:00:38

标签: csv neo4j cypher

我是Neo4j / Cypher的新手。我正在尝试使用导入的CSV文件中的各种信息列来设置节点的属性,但我遇到了麻烦。以下是我尝试的相关部分:

// Barge, Boat, City, Port.

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
'file:///test.csv' AS line
WITH line

CREATE (p:port {name: UPPER(line.location_name)})

SET p.year = {line.event_year},
    p.day = {line.event_day},
    p.month = {line.event_month}

但我一直收到一条错误信息:

Invalid input '.': expected an identifier character, whitespace, '}' or            ':' (line 33, column 19 (offset: 871))
"SET p.year = {line.event_year},"
                   ^

我不知道该怎么做。我知道如果我手动将属性设置为值 - 并且没有将属性设置为CSV文件的指定列中的值 - 则不会出现问题。我也尝试用反引号括起属性值而不是大括号。

1 个答案:

答案 0 :(得分:2)

只是一个语法问题 - 你不需要大括号:

SET p.year = line.event_year,
    p.day = line.event_day,
    p.month = line.event_month

大括号用于查询参数(或用于节点模式中的内联属性)。在这种情况下,line是一个地图变量,而不是查询参数。