Импорт данных из JSON - PullRequest
       8

Импорт данных из JSON

0 голосов
/ 06 мая 2018

У меня проблема с импортом файла JSON с помощью процедуры apoc.load.json.

Ожидаемые отношения, которые я пытаюсь уловить: Университет --child -> Класс --child -> Студент

Выход:

Neo.ClientError.Statement.SyntaxError: Variable `value` not defined (line 1, column 8 (offset: 7))
"UNWIND value.university AS university"

Вот последовательность выполненных команд:

CALL apoc.load.json("FILE:///C:/tmp/input.json") YIELD value

UNWIND value.university AS university
UNWIND university.class AS class
UNWIND class.student AS student
MERGE (u:UniversityCategory {name:university.name})
MERGE (c:ClassCategory {name:class.name})
MERGE (s:StudentCategory {instr:student.name})
ON CREATE SET i.ID = instructions.ID
ON CREATE SET i.GPA = instructions.GPA
MERGE (u)-[:CHILD]->(c)
MERGE (c)-[:CHILD]->(s)

Вот структура файла JSON:

{
    "university": [{
        "name": "universityA",
        "class": [{
                "name": "class_1",
                "student": [{
                        "name": "student_1",
                        "ID": "1234",
                        "GPA": "3.8"
                    },
                    {
                        "name": "student_2",
                        "ID": "12345",
                        "GPA": "3.4"
                    }
                ]
            },
            {
                "name": "class_2",
                "student": [{
                    "name": "student_3",
                    "ID": "14",
                    "GPA": "3.0"
                }]
            }
        ]
    }]
}

Моя команда apoc.load.json работает, потому что я вижу структурированный файл JSON в окне браузера. Следующие шаги подозрительны, но я думаю, что я близок к определению отношений.

1 Ответ

0 голосов
/ 06 мая 2018

Решил мою проблему.

Все приведенные выше команды являются правильными, но команду load.apoc.json необходимо выполнить в том же запросе, что и остальные, а не последовательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...