我正在使用Justinrainbow的Slim v3和json模式验证器作为我的API。我想做的就是无法上班的是:
我无法做到的是:
# inside middleware:
$requestbody = $request->getBody();
$requestobject = json_decode($requestbody);
# validation and modification of $requestobject takes place here
$request->getBody()->write(json_encode($requestobject));
$request->reparseBody();
return $next($request, $response);
Run Code Online (Sandbox Code Playgroud)
从那时起,请求主体为null。我究竟做错了什么?我相当确定我修改Slim对象的方式有问题,因为当我手动尝试时它也无法正常工作$request->getBody()->write('{"some": "content"}')。
我需要从 csv 表单导入数据
id;name;targetset
1;"somenode",[1,3,5,8]
2,"someothernode",[3,8]
Run Code Online (Sandbox Code Playgroud)
到图中,我需要使用 cypher 将targetset其存储为集合(数组)。我试过
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/mytable.csv" AS row FIELDTERMINATOR ';'
CREATE (:MyNode {id: row.id, name: row.name, targetset: row.targetset});
Run Code Online (Sandbox Code Playgroud)
但它存储targetset为字符串,例如"[1,3,5,8]". 似乎没有一个函数可以将数组编码字符串转换为实际数组,就像将toInt字符串转换为整数一样。还有另外一种可能吗?
从 cypher 中的地图开始map,我可以通过 获取密钥keys(map),但似乎没有values类似的东西,而且 APOC 似乎没有合适的程序。
编辑: 使用最新的 neo4j 和 apoc 版本
我错过了什么吗?
在 Flask 中是否允许在视图函数之前修改请求 json 数据(例如在装饰器中)?甚至有可能吗?想象这样的事情:
from functools import wraps
from flask import request, current_app
def my_function_decorator(func):
@wraps(func)
def decorated_function(*args, **kwargs):
req = request.get_json()
# do something to calculate the new value
req["new key"] = "new value"
request.set_json(req)
return func(*args, **kwargs)
return decorated_function
Run Code Online (Sandbox Code Playgroud)
目的是根据发送到我的服务的地址数据,对来自第三方服务的经纬度数据进行地理编码。不确定装饰器是否是正确的选择,或者它是 before_request 还是其他东西,或者什么都没有。