问题标签 [neo4j-python-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neo4j - 包含混合类型的集合不能存储在属性中
我是 Neo4j 的新手,我正在尝试创建一个像这样的节点:
Neo4j 告诉我:
neo4j.exceptions.CypherTypeError:包含混合类型的集合不能存储在属性中。
这意味着它只允许我有一个列表:
但是,我的数据库中的每个表节点都会有不同的列名,所以我真的不能有一个属性列表......
有什么建议吗?
python - 带有 TLS 和自签名证书的 Neo4j Bolt:证书验证失败
我正在尝试为 CentOS7 上的 Bolt 通信设置启用了 TLS 的 Neo4j。服务器当前安装为系统服务。我已经生成了一个自签名证书和密钥:
然后,我将 server.crt 文件复制到 /var/ssl/trusted/neo4j(根据 Neo4j 文档)并将以下行添加到我的 neo4j.conf 中:
最后,我将 ca.crt 文件添加到我的系统可信证书链中:
并重新启动服务器,该服务器正常运行。但是,在尝试使用 Python 客户端连接到服务器时,我看到以下错误:
产生错误的Python代码:
CA 证书应该添加到我的系统信任链中,其他应用程序似乎可以使用它,但是 Neo4j 客户端似乎无法使用它来验证从服务器返回的证书。Neo4j 是否仅将此 CA 用于 HTTPS 端点,而不是 TLS 端点?如果是这样,我怎样才能将 Bolt 端点的 CA 证书放入我系统的信任链中?
python - 从 cypher bolt 语句中获取结果
我正在尝试使用neo4j python 驱动程序访问 neo4j 。我正在运行以下代码来获取事物 A的属性。我直接从 neo4j 的 GraphDatabase 打开驱动程序和会话,并使用session.run()执行图形查询。这些查询返回一个BoltStatementResult对象。我的问题是如何将此对象转换为我需要的实际结果(事物 A 的属性)。?
neo4j - 如何处理由于堆大小错误而失去与服务器的连接?
我有一个包含 2200 万条 JSON 格式记录的大型数据集,我使用 apoc.periodic.iterate 和 apoc.mongodb 将其从 mongodb 数据库导入到 neo4j。导入 300 万条记录并占用 6g 内存后,与服务器的连接丢失,出现堆大小异常。我更改了配置文件并设置了堆和页面缓存,但没有生效,这是主要问题。顺便说一句,在浏览器中运行代码并使用 python 驱动程序具有相同的结果。尽管当我手动导入数据并以 250 万个限制导入它,然后在下一次查询执行中跳过它并导入下一个 250 万个批次时,它仍然有效。我实际上想用 python 驱动程序来做到这一点,但我无法模拟手动处理它的方式。
日志文件中有错误提示:协议握手期间发生致命错误...已建立的连接被主机中的软件中止...
python - `with` 与简单变量赋值(neo4j 驱动程序)上的 linter 错误
这按记录工作:
但我的 linter 对此抛出了一个错误:
我认为这with
只是处理关闭句柄等的语法糖。
请注意,代码本身会运行,但 linter 错误确实会分散注意力。有没有办法修复原始代码
我正在尝试让会话对象用于多个事务(或我的应用程序的生命周期)
https://neo4j.com/docs/api/python-driver/current/driver.html#neo4j.Driver.session
neo4j - 获取节点/边创建/删除统计信息
我正在运行一个Python (3.8)
使用pip
库neo4j 4.0.0
与社区版neo4j 4.1.1
服务器交互的脚本。
MERGE
如果节点和关系不存在,我正在运行许多用于更新或创建的查询。到目前为止,这运行良好,因为数据库正在按预期获取数据。
但是,从我的脚本方面,我想知道在每个查询中创建了多少个节点和边。问题是,在Cypher
我从脚本发送到数据库的这些查询中,我不止一次调用MERGE
并且还使用APOC
过程(尽管这些APOC
只是用于更新标签,它们不会创建实体)。
下面是一个查询示例:
这可以正常工作,并且节点是使用从 传递的属性创建的,该属性通过threads
Dict
变量传递crt_params
到UNWIND
。
但是,其中的Result
实例内部run_res
没有任何实例供我访问已创建节点和关系的统计信息。我怀疑这是因为:ResultSummary
SummaryCounters
但是,我不确定这是否是原因。
希望有人可以帮助我设置我的查询,以便无论MERGE
我执行多少操作,我都可以获得发送的整个查询的统计信息crt_stmt
。
非常感谢。
python - 如何使用py2neo在neo4j中将列表列表加载为字符串
我有示例 param_list-
并有密码模板-
当我运行 cypher 语句时,出现以下错误:
即使我将属性值作为字符串类型,我仍然会收到此错误消息,指出不支持列表列表。
py2neo == 4.3.0 neo4j == 4.0.0
python - 在 Neo4j 中将参数作为 dict 传递给 tx.run
我正在尝试编写一个通用函数来获取 Cypher 查询和参数字典,并能够动态运行任何给定的查询。我所拥有的看起来像这样:
使用如下所示的查询:
并将参数传递为
我收到此错误:
要么我错了,要么在这种情况下你不能将命名参数的字典传递给 tx.run()...谁能让我直截了当?谢谢!
neo4j - 使用 neo4j Bolt 驱动程序(Python 或 Java)时获取事务 ID?
我正在尝试构建一个 REST API,以向将使用我的程序构建简单和高级 API 调用以与 Neo4j 图形交互的用户隐藏 Cypher 的复杂性。我想让用户可以使用事务 id处理HTTP API中的事务(打开事务、在事务中执行语句、提交/回滚事务)。是否可以从使用官方 Bolt 驱动程序之一创建的交易中提取交易 ID?
neo4j - 无法从失效连接中读取(Jupyter notebook,python 驱动程序)
我尝试将数据导入 Azure 中的 Neo4j VM。
此代码有效:
但是这段代码不起作用:
我有错误:
事务失败,将在 1.0608892687544587s 内重试(无法从失效连接中读取地址(主机='IP',端口=7687)(地址(主机='IP',端口=7687)))
我不知道我必须更改或检查什么。我也试过 Neo4j Desktop,我也有同样的错误。
Neo4j 版本:4.1.3