Как передать переменную в запрос HTTP в вызове API? - PullRequest
0 голосов
/ 06 марта 2020
URL='http://localhost:7474/db/neo4j/tx'
headers = {'Accept': 'application/json;charset=UTF-8','Content-Type':'application/json'}

def get_nodes(label, limit_count=50)
  data = {
    "statements" : [ 
        {
          "statement" : "MATCH (n:$label) RETURN n.name LIMIT $nproduct",
          "parameters" : { "nproduct" : $limit_count } 
        } ]
  }
  r = requests.post(URL, headers = headers,json=data)
  r.json()['results'][0]['data']

В этом запросе я намерен запросить все узлы метки, то есть «Продукт». В этой функции как передать $ label и $ limit_count в этом определении функции?

Текущая форма не работает.

1 Ответ

0 голосов
/ 17 марта 2020

Параметр обычно используется, когда вы хотите настроить свой запрос значениями переменных. Neo4j внутренне связывает значения параметров как значения (с кавычками, если это строка, как если это целое число).

Предполагая Python3 и Neo4j 3.

URL='http://localhost:7474/db/neo4j/cypher'
headers = {'Accept': 'application/json;charset=UTF-8','Content-Type':'application/json'}

def get_nodes(label, limit_count=50):
    ## Prepare your query
    query = "MATCH (n:{}) RETURN n.name LIMIT {}".format(label, limit_count) 
    data = {
        "query": query,
        "params": {
         ## Params go here if any
        }
    }
    r = requests.post(URL, headers=headers, json=data)
    return r.json()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...