首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >py2neo.database.status.CypherSyntaxError:变量未定义

py2neo.database.status.CypherSyntaxError:变量未定义
EN

Stack Overflow用户
提问于 2017-05-26 06:33:10
回答 1查看 501关注 0票数 0

我试图使用neo4j包将数据从python导出到py2neo db。我有一个dataframe‘放位_conts’,其中包含一个数字内容是字符串,它们的相应级别在float中。

我的代码是

代码语言:javascript
运行
复制
findnode = list(graph.find('rank',property_key='type',property_value='TrendingRank'))

if len(findnode) > 0:
    print("already exist")
else:
    for i in range(len(ranked_conts)):
        conts = ranked_conts.iloc[i]['content_id']
        rank = ranked_conts.iloc[i]['rank']
        graph.run("MERGE(c:Content{contentId:"+str(conts)+"})-[hr: HAS_RANK{r:"+str(rank)+"}]->(rank:Rank {type: 'TrendingRank'})")

但是,当我执行它时,我得到一个错误消息,名为py2neo.database.status.CypherSyntaxError:变量EROS_6272897未定义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 08:18:46

您希望使用参数,而不是为每个i in range创建新的查询。类似于:

代码语言:javascript
运行
复制
findnode =list(graph.find('rank',property_key='type',property_value='TrendingRank'))

if len(findnode) > 0:
    print("already exist")
else:
    for i in range(len(ranked_conts)):
        conts = ranked_conts.iloc[i]['content_id']
        rank = ranked_conts.iloc[i]['rank']
    graph.run("MERGE (c:Content{contentId:{cId}})-[hr: HAS_RANK{r:{rankValue}}]->(rank:Rank {type: 'TrendingRank'})",cId = str(conts),rankValue = str(rank))

这将加快查询速度,并使检查语法错误变得更容易。一个注意事项是,您可能希望将:Content:Rank分别合并,然后将关系放到MERGE上。就像这样。

代码语言:javascript
运行
复制
MERGE (c:Content{contentId:{cId}})
MERGE (rank:Rank {type: 'TrendingRank'})
MERGE (c)-[hr: HAS_RANK{r:{rank}}]->(rank)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44195097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档