如何将Python节点dicts导入neo4j?

2024-09-28 01:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在for循环中生成以下节点和关系数据大约一百万次。其思想是investor节点通过relationship边连接到company节点:

investor = {'name': owner['name'],
            'CIK': owner['CIK']}

relationship = {'isDirector': owner['isDirector'],
                'isOfficer': owner['isOfficer'],
                'isOther': owner['isOther'],
                'isTenPercentOwner': owner['isTenPercentOwner'],
                'title': owner['title']}

company = {'Name': json['issuerName'],
           'SIC': json['issuerSIC'],
           'Ticker Symbol': json['issuerTradingSymbol'],
           'CIK': json['issuerCIK'],
           'EIN': json['issuerEIN']}

如何完成以下代码以将上面的dicts导入neo4j社区版?在

^{pr2}$

Tags: namejsonfor节点titleinvestorcompanyowner
2条回答

您可以使用UNWIND子句。有点像

WITH {json} AS document
UNWIND document AS company
MERGE (c:company {c_id:company.id})
 SET c.sic=company.issuerSIC

如果您的一些json项再次被列出,您可以随意使用展开:UNWIND document.list_of_some_property

在py2neo中,节点的定义如下:

class Node(*labels, **properties)

每个node有一个label,可以有多个{}。在这种情况下,可以通过将标签Investor和节点的属性设置为nameCIK来定义投资者节点。在

investor_node = Node('investor', name = owner['name'], CIK = owner['CIK'])

同样,company node看起来像:

^{pr2}$

关系定义如下:

class Relationship(start_node, type, end_node, **properties)

在这种情况下,关系可以使用以下方式定义:

investor_company_relationship = Relationship(investor_node, "is_director", company_node)

您可以找到neo4j图here的一个示例实现。在

相关问题 更多 >

    热门问题