0

如何将 falcon 中的 req 获取为 json 而不是字符串作为单独的键值对。

如果 {"a:213","b":32435} 我如何确保 a 被传递然后获取 a 的值

4

5 回答 5

1

我希望以下代码对您有所帮助。

json_data = json.loads(req.stream.read())
try:
    value_a = json_data['a']
except KeyError as k:
    print 'a is not passed'
于 2018-04-28T04:19:35.390 回答
0

不确定这是否是您所要求的,但您可以使用以下方法将原始请求 (req) 转换为 json:

if req.content_length:
   doc = json.load(req.stream)
于 2017-04-22T14:20:26.267 回答
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)

希望能帮助到你

于 2017-09-06T21:35:00.207 回答
0

我认为以下代码会对您有所帮助:

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

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

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

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

于 2017-05-31T09:48:10.117 回答
0

将 req/resp 转换为 JSON 后:

json.load(req.stream)

您可以将输出视为常规字典。

于 2022-01-20T08:55:38.530 回答