Я пытаюсь проверить мой код сервера swagger с помощью robot-framework. Обработчик сервера возвращает словарь (или объект json?). Робот-фреймворк пытается проверить ответ, но выдает эту ошибку.
ошибка: JSONDecodeError: Ожидается имя свойства, заключенное в двойные кавычки: строка 1, столбец 2 (символ 1)
Проблема в том, что ответ содержит одинарные кавычки вместо двойных (или ответ не идентифицирован как json), поэтому json.loads завершается ошибкой.
Я попытался добавить заголовки content-type и mimetype как 'application / json'. Jsonify пробной колбы.
Вот часть кода, которая возвращает ответ.
def grants_post(project, GrantRequest, Accept=None, Content_Type=None, Authorization=None):
# code that creates a large dictionary called rsp.
grant_uri_id = str(uuid.uuid4())
AsyncGrantResponses[grant_uri_id] = rsp
print(rsp['output'])
return rsp['output'], 201, {'location': "sol003/grant/" + project + "/grant/v1/grants/" + grant_uri_id , 'mimetype' : "application/json" }
Вот результаты работы робота. После проверки схемы это делает json.loads. Используется «.......» в ч / б, так как данные большие.
Создание нового гранта - синхронный режим
| FAIL | Не удалось оценить выражение json.loads('''{'extVirtualLinks':
[{'vimConnectionId': 'vimAccount',
'extCps':........................... 'id':
'718bb9a2-37dd-4238-a393-7936a8b53086'}''')
: JSONDecodeError:
Ожидается имя свойства в двойных кавычках: строка 1, столбец 2
(символ 1)
Я думаю, что ожидаемый результат должен иметь двойные кавычки вместо одинарных кавычек в данных.