如何解决如何使用json文件将消息从Rabbitmq传输到neo4j
我是rabbitmq 和neo4j 的新手。 我在我的 rabbitmq 队列中收到了来自 ms-sql db 的 json 消息。 尝试使用此 python 脚本将其发送到测试 neo4j 数据库中:
import pika,sys,os,json
from py2neo import Graph
def main():
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='request_sql',durable=True)
graph = Graph("bolt://10.133.100.105:7687",user="neo4j",password="123")
query = """
RETURN $json
"""
def callback(ch,method,properties,body):
#print (" [x] Received %r" % json.loads(body))
print(graph.run(query,json = body))
channel.basic_consume(queue='request_sql',on_message_callback=callback,auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print('Interrupted')
try:
sys.exit(0)
except SystemExit:
os._exit(0)
File "receive.py",line 25,in <module>
main()
File "receive.py",line 21,in main
channel.start_consuming()
File "/usr/local/lib/python3.6/site-packages/pika/adapters/blocking_connection.py",line 1866,in start_consuming
self._process_data_events(time_limit=None)
File "/usr/local/lib/python3.6/site-packages/pika/adapters/blocking_connection.py",line 2027,in _process_data_events
self.connection.process_data_events(time_limit=time_limit)
File "/usr/local/lib/python3.6/site-packages/pika/adapters/blocking_connection.py",line 834,in process_data_events
self._dispatch_channel_events()
File "/usr/local/lib/python3.6/site-packages/pika/adapters/blocking_connection.py",line 566,in _dispatch_channel_events
impl_channel._get_cookie()._dispatch_events()
File "/usr/local/lib/python3.6/site-packages/pika/adapters/blocking_connection.py",line 1494,in _dispatch_events
evt.properties,evt.body)
File "receive.py",line 18,in callback
print(graph.run(query,json = body))
File "/usr/local/lib/python3.6/site-packages/py2neo/database/__init__.py",line 709,in run
return self.auto().run(cypher,parameters,**kwparameters)
File "/usr/local/lib/python3.6/site-packages/py2neo/database/work.py",line 128,in run
readonly=self.readonly,hydrant=hydrant)
File "/usr/local/lib/python3.6/site-packages/py2neo/client/__init__.py",line 936,in auto_run
result = cx.auto_run(graph_name,cypher,readonly=readonly)
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 673,in auto_run
result.buffer()
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 949,in buffer
self.__cx.sync(self)
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 516,in sync
self._audit(result)
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 626,in _audit
task.audit()
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 883,in audit
item.audit()
File "/usr/local/lib/python3.6/site-packages/py2neo/client/bolt.py",line 1062,in audit
raise self._failure
py2neo.database.work.ClientError: [Statement.SyntaxError] Type mismatch: expected Map,Node,Relationship,Point,Duration,Date,Time,LocalTime,LocalDateTime or DateTime but was String (line 3,column 16 (offset: 35))
" UNWIND data.FirmID as id"
我想要的结果 - 从 json fire info neo4j 数据(图形等)传输数据
我做错了什么?需要一些建议和帮助,请:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。