UNWIND功能不读JSON完全
graph = Graph()
query2 = """
WITH {m} AS document
UNWIND document.lists AS s
UNWIND s.imageurl AS img
UNWIND s.youtubevideourl AS vid
RETURN s
"""
print (graph.cypher.execute(query2,m = m))
我试图使用UNWIND通过充分JSON文件阅读,但我只UNWIND功能不读JSON完全
通过第一部分入门,因此我无法绘制的曲线图完整的json。
这是罚款早些时候工作,但现在我已经加入YouTube的视频链接,
相同的页面,weblinkurl,webtitle我已经开始面临同样的问题的称号。
以下是我使用不同链接编译的JSON文件的示例,因为我只能读取第一部分,但是我想阅读完整的JSON。
这只有2份JSON的,我想阅读全文,使节点
如有任何人都可以告诉如何通过放松或别的事情可做。
[{'Topic': 'Virat_Kohli',
'imagetitle': 'Virat_Kohli_June_2016_(cropped).jpg?width=300',
'imageurl': 'http://commons.wikimedia.org/wiki/Special:FilePath/Virat_Kohli_June_2016_(cropped).jpg?width=300',
'webtitle': 'Virat Kohli Official Website',
'weburl': 'http://www.viratkohli.club/',
'youtubevideotitle': 'Virat Kohli Finally Accepts Love For GIRLFRIEND Anushka Sharma On Aamir Khan's Secret Superstar Show - YouTube',
'youtubevideourl': 'https://www.youtube.com/watch?v=zmPh2OQzZqc'},
{'Topic': 'Virat_Kohli',
'webtitle': 'Virat Kohli profile 2017, News and images only on official website of RCB',
'weburl': 'https://www.royalchallengers.com/virat-kohli',
'youtubevideotitle': 'Virat Kohli after losing ICC champions trophy Final - India vs Pakistian - Press Conference 2017 - YouTube',
'youtubevideourl': 'https://www.youtube.com/watch?v=Yf38l1Kx2-I'},
什么,我想是做的是
graph = Graph()
query2 = """
WITH {j} AS document
UNWIND document.lists AS s
UNWIND s.Topic AS top
UNWIND s.weburl AS url
UNWIND s.imageurl AS img
UNWIND s.youtubevideourl as y
MERGE (c:topicnames {name:s.Topic})
MERGE (sc:images{img:img, type : s.imagetitle})
MERGE (v:weblink{url:url, type : s.webtitle})
MERGE (g:videos{vid:y, type : s.youtubevideotitle})
MERGE (c)-[:IMAGE_LINKS]->(sc)
MERGE (c)-[:WEB_LINKS]->(v)
MERGE (c)-[:VIDEO_LINKS]->(g)
RETURN (c)
"""
print (graph.cypher.execute(query2,j = j))
所以我必须有话题和5视频链接节点,5个网络链接节点和1个ImageLink的节点的单个节点中的Neo4j,但只有其为1部分json 绘制节点,所以UNWIND不会读取或转换与Topic,weburl,youtubevideourl具有相同关键字的其他值,这就是为什么我想知道它为什么不起作用以及如何解决它的原因。
JSON文件本身就是文档列表,因此您不需要专门传递列表。而且你不需要多次使用UNWIND。尝试使用下面的程序(并确保解析时存在所有变量):
graph = Graph()
query2 = """
UNWIND {j} AS s
MERGE (c:topicnames {name:s.Topic})
MERGE (sc:images{img:s.imageurl, type : s.imagetitle})
MERGE (v:weblink{url:s.weburl, type : s.webtitle})
MERGE (g:videos{vid:s.youtubevideourl, type : s.youtubevideotitle})
MERGE (c)-[:IMAGE_LINKS]->(sc)
MERGE (c)-[:WEB_LINKS]->(v)
MERGE (c)-[:VIDEO_LINKS]->(g)
RETURN (c)
"""
print (graph.cypher.execute(query2,j = j))
希望这有助于!
我尝试了相同的方法,但是它给出了语义错误。-AttributeError:module'py2neo.cypher。 'SemanticError'。还是谢谢你的建议 –
你为什么不试试python-neo4j驱动。它比py2neo更快更容易。我建议这是因为我们正在使用当前项目中的驱动程序。 – techie95
你想用3' UNWINDS'完成什么?你查询的只是返回's',这是由第一个'UNWIND'获得的。 – cybersam
我想你可能不明白UNWIND的作用。 UNWIND在集合/列表上操作,并将该集合更改为行。第一个UNWIND看起来很好,但另外两个是在非集合值上操作的(根据您的摘录,它们是字符串)。你究竟想在这里做什么? – InverseFalcon
我想做什么 –