2017-04-21 43 views
0

我如何获得falcon中的req作为json而不是字符串作为单独的键值对。构建API的猎鹰

如果{“A:213”,“B”:32435} 我如何确保被通过,那么获得的

回答

0

不知道价值,如果这就是你问什么,但你可以改变你原始的请求(REQ),以JSON使用:

if req.content_length: 
    doc = json.load(req.stream) 
0

我想下面的代码将帮助您:

json_data = json.loads(req.stream.read()) 

或者如果你想指定的输入数据的特定编码格式。

json_data = json.loads(req.stream.read().decode('utf8')) 

请让我知道你需要进一步澄清。

0

使用

stream = req.bounded_stream.read() 

stream = req.stream.read() 

我创建了一个BodyParser类作为中间件:

class BodyParser(object): 
    def __init__(self, ctx): 
     self.ctx = ctx 
    def process_request(self, req, resp): 
     if req.method.upper() in ['POST', 'PUT', 'PATCH']: 
      stream = req.stream.read() 
      if not stream: 
       req.context['body'] = None 
       return 
      req.context['body'] = json.loads(stream) 

希望它可以帮助