Как проанализировать нестандартные данные JSON с помощью языка запросов cypher в базе данных neo4j? - PullRequest
0 голосов
/ 14 октября 2019

В приведенном ниже файле json я хочу получить доступ к "934934507945312256", "934934503604174848", .... , а затем к ключам внутри них. Но после использования UNWIND-предложения я не могу получить доступ к данным этих ключей (quote_count, reply_count и т. 1005 *

    {
    "934934507945312256": {
    "quote_count": 0,
    "reply_count": 0,
    "hashtags": null,
    "datetime": "2017-11-26 23:58:51",
    "date": "2017-11-26",
    "like_count": 0,
    "verified": "False",
    "sentiment": 0,
    "author": "Judy?The Resistance",
    "location": "Hollywood, California USA??",
    "tid": "934934507945312256",
    "retweet_count": 0,
    "type": "retweet",
    "media_list": null,
    "quoted_source_id": null,
    "url_list": null,
    "tweet_text": "RT @kylegriffin1: Reminder: The Senate Judiciary Committee gave Jared Kushner a November 27 deadline to turn over the missing records… ",
    "author_profile_image": "https://pbs.twimg.com/profi...",
    "author_screen_name": "jgirl66",
    "author_id": "23737528",
    "lang": "en",
    "keywords_processed_list": [
    "reminder",
    "senate judiciary committee",
    "kushner november",
    "deadline"
    ],
    "retweet_source_id": "934872065471115264",
    "mentions": [
    "kylegriffin1"
    ],
    "replyto_source_id": null
    },
    "934934503604174848": {
    "quote_count": 0,
    "reply_count": 2,
    "hashtags": [
    "MissUniverse",
    "Thailand"
    ],
    "datetime": "2017-11-26 23:58:50",
    "date": "2017-11-26",
    "like_count": 38,
    "verified": "False",
    "sentiment": 0,
    "author": "P'Hmee7.5",
    "location": "Bangkok, Thailand",
    "tid": "934934503604174848",
    "retweet_count": 105,
    "type": "Tweet",
    "media_list": null,
    "quoted_source_id": null,
    "url_list": null,
    "tweet_text": "รอโหวต มรญ #MissUniverse #Thailand",
    "author_profile_image": "
    Thumbnail
    ",
    "author_screen_name": "Peehmee75",
    "author_id": "700720806972624897",
    "lang": "th",
    "keywords_processed_list": null,
    "retweet_source_id": null,
    "mentions": null,
    "replyto_source_id": null
    },
    "934934336381636608": {
    "quote_count": 0,
    "reply_count": 0,
    "hashtags": null,
    "datetime": "2017-11-26 23:58:10",
    "date": "2017-11-26",
    "like_count": 0,
    "verified": "False",
    "sentiment": 0,
    "author": "selfresqingprncess",
    "location": "Maine, USA",
    "tid": "934934336381636608",
    "retweet_count": 0,
    "type": "retweet",
    "media_list": null,
    "quoted_source_id": null,
    "url_list": null,
    "tweet_text": "RT @kylegriffin1: Reminder: The Senate Judiciary Committee gave Jared Kushner a November 27 deadline to turn over the missing records… ",
    "author_profile_image": "https://pbs.twimg.com/profi...",
    "author_screen_name": "slfresqngprncss",
    "author_id": "100536014",
    "lang": "en",
    "keywords_processed_list": [
    "reminder",
"keywords_processed_list": [
            "reminder",
            "senate judiciary committee",
            "kushner november",
            "deadline"
        ],
        "retweet_source_id": "934872065471115264",
        "mentions": [
            "kylegriffin1"
        ],
        "replyto_source_id": null
    }
  }

Там я попробовал: - query =«»»с {json} в качестве данныхUNWIND данные как документFOREACH (я в док |MERGE (label1: Label1 {автор: l.author}))«»»

Но я получаю ошибку: - Невозможно объединить узел, используя нулевое значение свойства для автора.

1 Ответ

1 голос
/ 16 октября 2019
  1. Ваш файл JSON имеет неправильный формат.

    Строка JSON не может содержать управляющие символы (например, возврат каретки или перевод строки). И ваш JSON содержит посторонний раздел (это, вероятно, ошибка копирования / вставки):

    "keywords_processed_list": [
    "reminder",
    
  2. Более того, UNWIND можно использовать только со списками. Вы не можете использовать его, чтобы получить свойства с карты. После исправления ошибок JSON попробуйте следующий запрос (я предполагаю, что json - это параметр , значение которого - ваши данные JSON):

    UNWIND KEYS($json) AS k
    MERGE(label1:Label1 {author: $json[k].author})
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...