如何将 falcon 中的 req 获取为 json 而不是字符串作为单独的键值对。
如果 {"a:213","b":32435} 我如何确保 a 被传递然后获取 a 的值
如何将 falcon 中的 req 获取为 json 而不是字符串作为单独的键值对。
如果 {"a:213","b":32435} 我如何确保 a 被传递然后获取 a 的值
我希望以下代码对您有所帮助。
json_data = json.loads(req.stream.read())
try:
value_a = json_data['a']
except KeyError as k:
print 'a is not passed'
不确定这是否是您所要求的,但您可以使用以下方法将原始请求 (req) 转换为 json:
if req.content_length:
doc = json.load(req.stream)
利用
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)
希望能帮助到你
我认为以下代码会对您有所帮助:
json_data = json.loads(req.stream.read())
或者,如果您想指定输入数据的特定编码格式。
json_data = json.loads(req.stream.read().decode('utf8'))
请让我知道您需要进一步澄清。
将 req/resp 转换为 JSON 后:
json.load(req.stream)
您可以将输出视为常规字典。