Сокол для построения API
Как получить req в соколе в виде json, а не string как отдельные пары ключ-значение.
If {"a: 213", "b": 32435} Как мне убедиться, что a передано, а затем получить значение a
5 ответов
Я надеюсь, что следующий код поможет вам.
json_data = json.loads(req.stream.read())
try:
value_a = json_data['a']
except KeyError as k:
print 'a is not passed'
Я думаю, что следующий код поможет вам:
json_data = json.loads(req.stream.read())
ИЛИ, если вы хотите указать конкретный формат кодирования входных данных.
json_data = json.loads(req.stream.read().decode('utf8'))
Пожалуйста, дайте мне знать, что вам нужны дополнительные разъяснения.
Использование
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)
Надеюсь, поможет
Не уверен, что это то, что вы просили, но вы можете преобразовать свой необработанный запрос (req) в json, используя:
if req.content_length:
doc = json.load(req.stream)
после того, как вы переведете req/resp в JSON с помощью:
json.load(треб.поток)
вы можете посмотреть на вывод как на обычный словарь.